238
M. Tsuji et.al.
MUST replaces MPI functions starting with MPI_ such as MPI_Send with their
own MPI functions, including correctness check and actual communication. The
functions starting with MPI_ such as MPI_Send in standard MPI libraries wrap the
functions starting with PMPI_ which perform communication. In order to avoid
the correctness check for the control sections, we define some macro to use PMPI
functions directly (Fig. 18). Moreover, to reserve an additional process for MUST
in remote programs, we define the macro to invoke remote programs (Fig. 19).
The original MUST creates an output file named MUST_Output.html for
each of parallel applications. On the other hand, in the mSPMD programming
model, there are one or more parallel applications simultaneously. Therefore, we
modify the MUST library to generate different MUST_Output_.html files
for different remote programs. So far, we give a process id of the rank-0 of a remote
program as the the output file. Figure 20 shows an example of the output file
generated by MUST in the mSPMD programming model.
8.2 Experiments
We have performed some experiments to evaluate the execution times and to
investigate applications’ behaviors with and without the MUST library. In these
experiments, the Oakforest-PACS (OFP) system has been used. Table 6 shows the
specification of the OFP. For remote programs, we adopt the flat-MPI programming
model where each MPI process runs on each core.
We focus on collective communication (MPI_Allreduce) and point to point
communication (Pingpong) and consider codes with and without error for each.
Figure 21 shows the tasks used in the experiments. From the top to bottom, allreduce
(w/o error), allreduce (w/ error, type mismatch), pingpong (w/o error), pingpong
(w/ error, type mismatch), allreduce (w/ error, operation mismatch), and allreduce
(w/ error, buffer size mismatch). Also, we consider different numbers of iterations
Fig. 18 The Macro to disable
the MUST correctness check
Fig. 19 The Macro to invoke
remote programs with n + 1
processes where “+1” is kept
for MUST
Précédent

- 242/265

Suivant