Abstract :
The goal of portable code generation has been applied to parallel processing, although the problems of standardisation and efficiency are complex. This complexity comes about through the additional dimension of multiple processors, processor control and inter-processor communications. An ideal system would compile a standard language, either expressing parallelism or containing implicit parallelism which the compiler could detect. In this case, for the compiler to generate portable code, there must still be a standard interface or set of kernel entries. However it becomes the task of the compiler rather than the programmer to make the appropriate calls to implement the concurrent execution of the users program. The author describes VSA, a project, which uses this approach. He defines an interface for compiled code, independent of target machine which is based over a computational space comprising parallel data objects, where the extent of these objects is defined by the user program rather than machine architecture
Keywords :
parallel programming; program compilers; program interpreters; programming environments; software portability; standards; virtual machines; VSA; compiled code; compiler; computational space; concurrent execution; efficiency; implicit parallelism; inter-processor communications; kernel entries; machine architecture; multiple processors; parallel data objects; parallel processing; parallel program translation; portable code generation; portable programming environment; processor control; standard interface; standard language; standardisation; target machine; user program; virtual systems architecture;