What is KMI?
MoreDream
          -  GAIS
          -  GRASP
          -  MPICH-GX
KMI-GridSphere
KGridCA
AIService
Downloads
License
Contacts
Mail list
 
 
 
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
     
     
     
            Copyright (c) 2002~2006 KMI. All Rights Reserved.