|
| |
| |
|
| |
What
is MPICH-GX? |
| |
MPICH-GX is a patch of MPICH-G2 to extend functionality required
in the Grid. MPICH-G2 is a well-defined implementation of Grid-enabled
MPI, but it is needed to be modified for supporting some requirements
of Grid applications. MPICH-GX provides following functions. |
|
| |
1) File-based Initialization
2) Private IP Support
3) Effective Collective Operations |
|
| |
Main Features |
| |
Basically, MPICH-GX is based on MPICH-G2.
Thus, it has similar architecture of MPICH-G2 as shown in Figure
1. It consists of
a patch code of MPICH-G2 and a proxy daemon named 'nproxy'. The
patch will modify 'globus2 device' of MPICH to add required
functions. The nproxy will relay the messages of MPI processes
when the
process is located in private IP clusters. As shown in the Figure
1, application developer can make MPICH-GX applications by using
standard MPI API. It can be mapped to the globus2 device passing
through ADI layer. We modify the globus2 device, so that some
functions in MPICH-GX are different from MPICH-G2. |
| |
|
Figure 1. Architecture of MPICH-GX |
| |
| |
File-based
Initialization |
| |
| |
MPI applications need an initialization
procedure that create processes and prepares necessary
information for passing messages each other. Such procedure
depends on the functions given by middlewares. For example,
MPICH-G2 use DUROC, which is a component of Globus, to
initialize MPI processes. Sometimes it can be very efficient,
but it makes the MPI library to be tied up by the middleware.
Thus, the change of Globus results in inevitable change
of MPI library. This is the reason why the MPICH-G2 cannot
work with Globus 3.0 or later.
Therefore, we modify the initialization procedure of
MPICH-G2 which depends on DUROC component to file-based
initialization. It allows users to launch MPI applications
without DUROC. To use file-based initialization, users
have to make the file (we call it configuration file).
JobSubmission Service in GRASP helps you to run your
MPI applications in convenient way. It can create configuration
files and stage the files to execution node automatically.
But, you also can launch the applications manually without
any launching program if you know the method to make
the configuration file. The contribution of the file-based
initialization is that it is independent of middlewares.
Even though the Grid middleware is changed more and more,
we can launch the MPI application in a same way when
we use the file-based initialization. |
|
| |
|
|
| |
Private
IP Support and 'nproxy' |
| |
| |
It is a well-known
problem that MPICH-G2 does not support private IP
clusters. In MPICH-G2, processes communicate with
each other based on IP addresses. Thus, it cannot
support private IP clusters by the nature.
To support private IP clusters, MPICH-GX uses a communication
relay scheme combining the NAT service with a user
level proxy named ‘nproxy.’ In this approach,
only incoming messages are handled by a user-level
proxy to relay them into proper nodes inside the cluster,
while the outgoing messages are handled by the NAT
service at the front-end node of the cluster. Figure
2 show the conceptual diagram of our relay scheme.
|
| |
|
| |
|
| |
(a) Between two private IP clusters |
| |
|
| |
|
| |
(b) Between a private IP clusters
+ public IP cluster |
|
| |
Figure 2. Communication
Relay Scheme in MPICH-GX |
|
| |
| |
Efficient
Collective Operations |
| |
| |
For the collective
operations, MPICH-G2 uses the flat-tree algorithm
which the root communicates with other processes
directly (See details in http://www.globus.org/mpi)
But, when if the high latency occurs between the
rood and other processes, its performance can be
degraded significantly. Thus, MPICH-GX uses the HLOT
(Hierarchical Latency Optimal Tree) algorithm for
collective operations to avoid such high latency
links.
|
|
| |
|
|
| |
Requirements |
| |
| |
The
following softwares are required to install MPICH-GX: |
| |
| |
OS: Linux (RedHat 7.3 or more are recommended) |
| |
Installing Globus Toolkit 2.4.3 or more |
| |
Extracting MPICH 1.2.6 source code from a tar ball |
|
|
| |
Documents |
| |
| MPICH-GX Manual |
| |
| |
|