Chare kernel and its implementation on multicomputers

Wei Shu · 1990

The chare kernel is a runtime support system for executing parallel programs. It is responsible for the scheduling of parallel actions--chares, and the manipulating of data exchange between chares, so that programmers can concentrate on exploring parallelism. The chare kernel provides several dynamic scheduling schemes to support applications with dynamic features. One of the schemes, called Adaptive Contracting Within Neighborhood, is especially designed for the runtime self-adaptive feature with low overhead. The chare kernel language can be used in two ways: as a user programming language or as an intermediate language for implementing high-level languages. As an intermediate language, the chare kernel language serves as a compilation target to which high-level programming languages are translated. These high-level languages could be implicit parallel languages, such as logic or functional programming languages. Since the chare kernel hides the machine-dependent features, programs written in the chare kernel language can run on different MIMD parallel machines--whether shared-memory or message-passing--without any changes. The preliminary performance studies have been conducted on the Intel iPSC/2 and the NCUBE hypercubes and several shared-memory machines.

Read the paper · More papers on PaperTik