MPICH1

From HP-SEE Wiki

Jump to: navigation, search

Contents

INTRODUCTION

Section contributed by UKIM

MPICH is an open-source, portable implementation of the Message Passing Interface (MPI) Standard. It contains a complete implementation of version 1.2 of the MPI Standard and also significant parts of MPI-2, particularly in the area of parallel I/O. MPICH is both a runtime and compile-time environment for MPI-compliant code. MPICH is built with support for several different compiler sets, but the user must choose one. MPICH supports C, C++, F77, and F90. However not all compiler sets support all languages. Portland Group's CDK and Intel support all four languages. KCC supports only C++. Absoft supports F77 and F90. GNU supports, C, C++, and F77. For KCC and Absoft, GNU 3.2.3 is used for other cases. In details we will describe how to install MPICH form F77 and F90 Fortran compiler.

Install MPICH 1.2.7 for FORTRAN compiler

Section contributed by UKIM

First of all, will be mast download mpich-1.2.7.tar.gz, from ftp://ftp.mcs.anl.gov/pub/mpi/. In this .gz file are all necessary files for installation of MPICH1. First step of installation is extract .gz file, this step will be realize with next two command line

gzip -d mpich-1.2.7.tar.gz
tar -xf mpich-1.2.7.tar	

After extract file, in the same directorium, we will found new directorium mpich-1.2.7. To analyze the content of this directorium, we can open with the command,

cd mpich-1.2.7
ls

If we like to get additional information for mpich 1.2.7, we must read README file. In mpich-1.2.7 directorium has file with name configure. This file is necessary for configuration installation of MPICH. To see details how to configure MPICH for special environment try with command

configure -usage

Now, we describe how to configure this file for install MPICH for F77, F90 and both (F77 and F90) FOTRAN Compiler. For f77 and f90 programs we will use same compiler, f90. Configuration MPICH for f77 with f90 compiler will made for this command

./configure --disable-f90 -prefiz=/user/local/mpich-1.2.7/f77-nof90 

In above command with argument --disable-f90 we checked that we will be work with f77 programs. /user/local/mpich-1.2.7/f77-nof90 is install directorium. If we like to configure MPICH for f90 program we will use next commad

./configure -prefiz=/user/local/mpich-1.2.7/f90

If we like to configure MPICH for environments with different FORTRAN compilers we use --with-filebname option. For example, if one of the compilers is g77, we use the command

./configure --with-filbname=mpich-g77  -prefiz=/user/local/mpich-1.2.7/

When we finish with configuration MPICH for specific Fortran environment, start instalation with command

make install

After installation of MPICH, we can configure and set special architecture of environment. MPICH is specific for different environment. In the next text we will describe how to configure MPICH, for same of this architecture Cray multiprocessor

./configure -device=ch_p4 -arch=GRAY

HP Exemplar

./configure -device=ch_shem -arch=paragon

IBM SP

./configure – device=ch_mpl –arch=rs6000


SET

Section contributed by IICT-BAS

The main issue when porting Monte Carlo and quasi-Monte Carlo algorithms is to use a good parallel pseudorandom generator or generator for low-discrepancy sequences. For the SET application the SPRNG library is used. SPRNG is a scalable parallel pseudorandom number generator especially suited to large-scale, parallel Monte Carlo applications. It provides five generators, which produce good quality random numbers, and are also fast. They have been subjected to some of the largest random number tests, with around 10^13 RNs per test. SPRNG provides both FORTRAN and C (also C++) interfaces for the use of the parallel random number generators. Present version of SPRNG 4.0 is a C++ version with the GMP package removed. Version 2 can also be used and in some cases is easier to compile, for example with versions of MPI like MPICH1.

SIMPLE-TS-2D

Section contributed by IICT-BAS

A domain decomposition (data partitioning) approach is used. The idea is a single instruction stream and multiple data stream (SIMD) to be used in accordance with Flinn’s taxonomy. The realization was accomplished by using basic instructions from standard MPICH1. This make the code compatible with other MPICH standards.

The bottleneck of the communications is the latency, because of the small size of the packages. There are a lot of communications in one iteration of SIMPLE-TS. To reach a high parallel efficiency when using MPICH1 non-blocking communications are used and latency is overlapped with calculations. The organization of sending and receiving messages is done fully manual in order to make possible the use of non-blocking communications.

References

Bibliography

[1] http://www.mcs.anl.gov/research/projects/mpi/mpich1-old/docs/mpichman-chshmem/node33.htm

[2] Installing and using MPICH, MPICH-GM, and MPICH-MX on Linux Linux systems – Xlnghong He

[3] Installation Guide to mpich, a Portable Implementation of MPI Version 1.2.0, William Gropp and Ewing Lusk


(examples from MDCisplatin, HC-MD-QM-CS, PCACIC, HMLQCD, GIM, GENETATOMICS, CFDOF, NUQG, DNAMA, MDSCS, MSBP)