Cashmere

Cashmere is a programming system for heterogeneous compute clusters with many-core devices such as GPUs.

License

License

GroupId

GroupId

nl.junglecomputing.cashmere
ArtifactId

ArtifactId

cashmere
Last Version

Last Version

0.4
Release Date

Release Date

Type

Type

jar
Description

Description

Cashmere
Cashmere is a programming system for heterogeneous compute clusters with many-core devices such as GPUs.
Project URL

Project URL

https://github.com/junglecomputing/cashmere
Source Code Management

Source Code Management

https://github.com/junglecomputing/cashmere/tree/master

Download cashmere

How to add to project

<!-- https://jarcasting.com/artifacts/nl.junglecomputing.cashmere/cashmere/ -->
<dependency>
    <groupId>nl.junglecomputing.cashmere</groupId>
    <artifactId>cashmere</artifactId>
    <version>0.4</version>
</dependency>
// https://jarcasting.com/artifacts/nl.junglecomputing.cashmere/cashmere/
implementation 'nl.junglecomputing.cashmere:cashmere:0.4'
// https://jarcasting.com/artifacts/nl.junglecomputing.cashmere/cashmere/
implementation ("nl.junglecomputing.cashmere:cashmere:0.4")
'nl.junglecomputing.cashmere:cashmere:jar:0.4'
<dependency org="nl.junglecomputing.cashmere" name="cashmere" rev="0.4">
  <artifact name="cashmere" type="jar" />
</dependency>
@Grapes(
@Grab(group='nl.junglecomputing.cashmere', module='cashmere', version='0.4')
)
libraryDependencies += "nl.junglecomputing.cashmere" % "cashmere" % "0.4"
[nl.junglecomputing.cashmere/cashmere "0.4"]

Dependencies

compile (6)

Group / Artifact Type Version
org.jocl : jocl jar 2.0.4
nl.junglecomputing : constellation jar 2.0.1
nl.junglecomputing.ipl : ipl-support jar 2.3.3
org.jcuda : jcuda jar 0.8.0
org.jcuda : jcuda-natives jar 0.8.0
org.lucee : commons-io jar 2.4.0

runtime (2)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.21
nl.junglecomputing.ipl : ibis-util jar 2.3.3

Project Modules

There are no modules declared in this project.

Cashmere

https://zenodo.org/badge/DOI/10.5281/zenodo.1324230.svg

Introduction

Cashmere is a programming system for heterogeneous compute clusters with many-core devices such as GPUs, something we call a compute jungle. Heterogeneity refers to the fact that the compute cluster can contain many different kinds of many-core devices with different processing speeds. Cashmere makes it possible to achieve good scalability and performance on these heterogeneous compute clusters.

Cashmere acts as a library on top of Constellation, a framework that schedules loosely coupled activities by means of work stealing. Cashmere operates on the level of one node and is responsible for scheduling many-core kernels efficiently onto may-core devices within the node. In addition, it provides a convenient interface for calling kernels. In Cashmere, the kernels for the many-core devices are written in Many-Core Levels (MCL), a programming system that allows one to write kernels for many-cores on multiple levels of abstraction. This allows programmers to trade off (control over) performance and portability and maintainability of the code.

Cashmere is an open source project of the Computer Systems group of the Computer Science department of the Faculty of Sciences at the Vrije Universiteit Amsterdam, The Netherlands. Cashmere and Constellation are built on the Ibis Portability Layer (IPL). Ibis has its own web-site: http://www.cs.vu.nl/ibis/ where you can find more Ibis documentation, papers, application sources.

History

In version 0.1.0, Cashmere was based on Satin that extends Java with Cilk like primitives that make it very convenient for the programmer to write divide and conquer style programs. In its current version 0.2.0, Cashmere acts as a library on top of Constellation.

Building Cashmere

git clone https://github.com/JungleComputing/cashmere.git
cd cashmere
./gradlew build
nl.junglecomputing.cashmere

Versions

Version
0.4