Multi-SPMD Programming Model with YML and XcalableMP
237
features in the mSPMD programming model. In this section, we discuss another
important issue in large scale systems, productivity.
One of the reasons for the low productivity in distributed parallel programs is
the difficulty of debugging. Several libraries and tools have been proposed to help
and debug parallel programs. MUST (Marmot Umpire Scalable Tool) [5, 6, 12]
is a runtime tool that provides a scalable solution for efficient runtime MPI error
checking. The MUST has supported not only MPI but also XcalableMP (XMP) [8].
In this section, we discuss how to adapt the MUST library to the SPMD programs
in the mSPMD programming model and enable the MUST correctness checking for
the mSPMD. Computational experiments have been performed to confirm MUST’s
operation in the mSPMD and to estimate the overhead of the correctness checking.
The mSPMD programming model consists of workflow scheduler, middleware,
remote programs, and so on. Each of the remote programs includes user-defined
tasks and control sections where the remote program communicates with the workflow scheduler. In this work, we focus on the user-defined tasks within the remote
programs, and the correctness check by the MUST library should be applied only
to the user-defined tasks. Figure 17 shows an overview of the application execution
in the mSPMD programming model and the target of the correctness check by the
MUST library in the mSPMD programming model. While MUST checks the MPI
and XMP communications shown in orange letters, MPI_Comm_spawn used to
invoke remote programs, MPI_Send used to send a request to the remote programs,
must be ignored.
Fig. 17 Applying MUST to the mSPMD programming model. Only communication functions
written in red letters are checked, MPI functions written in black letters are not checked
237
features in the mSPMD programming model. In this section, we discuss another
important issue in large scale systems, productivity.
One of the reasons for the low productivity in distributed parallel programs is
the difficulty of debugging. Several libraries and tools have been proposed to help
and debug parallel programs. MUST (Marmot Umpire Scalable Tool) [5, 6, 12]
is a runtime tool that provides a scalable solution for efficient runtime MPI error
checking. The MUST has supported not only MPI but also XcalableMP (XMP) [8].
In this section, we discuss how to adapt the MUST library to the SPMD programs
in the mSPMD programming model and enable the MUST correctness checking for
the mSPMD. Computational experiments have been performed to confirm MUST’s
operation in the mSPMD and to estimate the overhead of the correctness checking.
The mSPMD programming model consists of workflow scheduler, middleware,
remote programs, and so on. Each of the remote programs includes user-defined
tasks and control sections where the remote program communicates with the workflow scheduler. In this work, we focus on the user-defined tasks within the remote
programs, and the correctness check by the MUST library should be applied only
to the user-defined tasks. Figure 17 shows an overview of the application execution
in the mSPMD programming model and the target of the correctness check by the
MUST library in the mSPMD programming model. While MUST checks the MPI
and XMP communications shown in orange letters, MPI_Comm_spawn used to
invoke remote programs, MPI_Send used to send a request to the remote programs,
must be ignored.
Fig. 17 Applying MUST to the mSPMD programming model. Only communication functions
written in red letters are checked, MPI functions written in black letters are not checked
