Chapel for the Cray XMT
Chapel is a new parallel programming language being developed by Cray Inc. with the goal of increasing the productivity of the end user. One of Chapel's themes is to support general parallel programming by having the user express parallelism and locality in an architecture-neutral manner using high-level abstractions. For programmers of multithreaded architectures like the Cray XMT, this has great promise since dominant HPC programming models like MPI are a poor fit for it while its native programming model does not support parallel execution on other architectures. To help fulfill this promise, this project is focused on improving Chapel's level of support for the Cray XMT.
The Chapel compiler being developed by Cray researchers as part of the DARPA High Productivity Computing Systems program uses source-to-source compilation to implement a user's Chapel program via standard C code with calls to runtime libraries that implement the necessary parallelism and communication. This permits the Chapel compiler to portably target such diverse architectures as multicore desktops, commodity clusters, and Cray supercomputers (not to mention those developed by other vendors).
Chapel's support for the Cray XMT has traditionally lagged behind other architectures due to the fact that within HPCS, Chapel has focused primarily on supporting large-scale distributed memory systems and on multithreading only at a small scale.
Brad Chamberlain, Task Lead, Cray Inc.
Lee Prokowich, Cray Inc.