224
M. Tsuji et.al.
4 Application Development in the mSPMD Programming
Environment
In this section, we describe how to develop applications in the mSPMD programming environment.
4.1 Task Generator
Figure 4 shows the YML Component generator extended for the mSPMD programming environment. The generator takes an implementation source code, such as the
one shown in Fig. 3. Then, combining the implementation and abstract source codes,
it generates several intermediate files: (1) an XMP source code, which extracts
task procedure itself defined by a user and (2) an interface definition file, which
includes some communication functions used to communicate with a workflow
scheduler. The YML Component generator calls (1) an XMP compiler to translate
the XMP source code to a C-source code with XMP runtime library calls and (2) a Ccompiler to compile the C-source code generated by the XMP compiler. The YML
Component generator calls (1) an OmniRPC-generator to translate the interface
definition to a C-source code and (2) a C-compiler to compile the C-source code
generated by the OmniRPC-generator. Finally, the YML Component generator calls
a linker to link the compiled object files and external libraries such as an MPI library.
Fig. 4 YML Component (task) generator extended for the mSPMD programming environment
M. Tsuji et.al.
4 Application Development in the mSPMD Programming
Environment
In this section, we describe how to develop applications in the mSPMD programming environment.
4.1 Task Generator
Figure 4 shows the YML Component generator extended for the mSPMD programming environment. The generator takes an implementation source code, such as the
one shown in Fig. 3. Then, combining the implementation and abstract source codes,
it generates several intermediate files: (1) an XMP source code, which extracts
task procedure itself defined by a user and (2) an interface definition file, which
includes some communication functions used to communicate with a workflow
scheduler. The YML Component generator calls (1) an XMP compiler to translate
the XMP source code to a C-source code with XMP runtime library calls and (2) a Ccompiler to compile the C-source code generated by the XMP compiler. The YML
Component generator calls (1) an OmniRPC-generator to translate the interface
definition to a C-source code and (2) a C-compiler to compile the C-source code
generated by the OmniRPC-generator. Finally, the YML Component generator calls
a linker to link the compiled object files and external libraries such as an MPI library.
Fig. 4 YML Component (task) generator extended for the mSPMD programming environment
