mpC is a high-level parallel
language (an extension of ANSI C), designed specially to develop portable adaptable
applications for heterogeneous networks of computers. The main idea
underlying mpC is that an mpC application explicitly defines an
abstract network and distributes data, computations and communications
over the network. The mpC programming system uses this information to
map the abstract network to any real executing network in such a way
that ensures efficient running of the application on this real
network. This mapping is performed in run time and based on
information about performances of processors and links of the real
network, dynamically adapting the program to the executing network.
The first version of the mpC programming system for networks of
workstations and PCs became available early in 1997 from
our homepage http://www.ispras.ru/~mpc. Currently, version 2.3.0 is available.
The mpC programming system includes a compiler, a run-time support
system (RTSS), a library, and a command-line user interface. The
compiler translates a source mpC program into the ANSI C program with
calls to functions of RTSS. RTSS manages processes, constituting the
parallel program, and provides communications. It encapsulates a
particular communication platform (currently, a subset of MPI) ensuring
platform-independence of the rest of system components.
More information . . .
Take a look at what professional programmers think
by Alexey Lastovetsky provides quick and easy way to master mpC. The
Russian version (KOI-8) is also present.