mpC: High level programming language for heterogeneous parallel computing

Downloaded 2739 times
Alexey Lastovetsky
Ravi Reddy
Vladimir Rychkov

mpC is a language for writing parallel programs for heterogeneous networks of computers. mpC is an extension to the C[] language, which is a Fortran 90 like extension to ANSI C supporting array-based computations. The mpC programmer provides the programming system with comprehensive information about the features of the implemented parallel algorithm that have a major impact on the execution time of this algorithm. In other words, the programmer provides a detailed description of the performance model of this algorithm. The programming system uses the provided information to optimally map at runtime this algorithm to the computers of the executing network. The quality of this mapping strongly depends on the accuracy of the estimation of the actual performance of the processors and communication links demonstrated at runtime on the execution of this application. Therefore, the mpC programming system employs an advanced performance model of a heterogeneous network of computers, and the mpC language provides constructs that allow the programmer to update the parameters of this model at runtime by tuning them to the code of this particular application. As a result, mpC allows the programmer to write an efficient program for heterogeneous networks in a portable form. The program will be automatically tuned at runtime to each executing network of computers trying to run on the network with maximal possible speed. Such programs might be written in MPI but it is much easier to write them in mpC.


4.0.02008-Jul-281003.11 KBRecommended for mpCThis is currently the recommended release for mpC.
3.0.02008-Jul-24790.75 KBSupported for mpCThis release is supported but is not currently the recommended release for mpC.