CHIMP and PUL: Support for portable parallel computing

Abstract The lack of a portable programming interface for parallel computers has inhibited the development of applications for such systems, and thus restricted the exploitation of this technology. In this paper we discuss various efforts to provide a portable interface to parallel computers, and present the Edinburgh CHIMP (Common High-level Interface to Message-Passing), and PUL (Parallel Utilities Library) activities in this context. The concepts behind these projects are described, with details of the range of parallel systems on which they are available. An important consequence of the portability offered by the CHIMP message passing layer is the ability for applications programmers to reuse entire programs, as well as code modules. PUL assists this by providing a set of reusable components for implementing parallel applications. Developed on top of CHIMP, the PUL utilities are themselves portable across a range of platforms. Finally, this paper summarises experience using CHIMP and PUL to implement parallel applications in collaboration with both industrial and academic groups.