This section describes how to download and build the mpich dlls and tools from the source distribution.
The first step is to download the source distribution of mpich .
The easiest way to get mpich is to use the web page www.mcs.anl.gov/mpi/mpich1/download.html; you can also use anonymous ftp from ftp.mcs.anl.gov in directory pub/mpi/nt. Get the file mpich.nt.1.2.5.src.exe.
Execute mpich.nt.1.2.5.src.exe and choose a directory to unzip the files into. An mpich subdirectory will be created in the directory you choose. The default is C: Program Files mpich mpich. (The extra mpich sub-directory is to prevent the source distribution from colliding with the binary distribution.)
You must have MS Visual C++ 6 and Compaq(Digital) Visual Fortran 6 in order to build without any modifications.
Load the workspace in Visual C++ IDE and select build=>batch build=>rebuild all.
There are several workspaces available:
- mpich.dsw
This project builds a shared memory/via/tcp device. It also contains the MPI-2 file functions provided by Romio for the NTFS file system. There are three targets to the project:
- Debug/Release builds the C interface and three Fortran interfaces for g77, Visual Fortran, and Intel. The Intel interface has MPI functions but not PMPI functions.
- Debug/ReleaseNoFortran excludes the Fortran files from the build in case you don't have a Fortran compiler
- Debug/ReleaseCDECLStrLenEnd builds the C interface and one Fortran interface. Use this project if you need to change the settings to match your Fortran compiler.
If you have a FORTRAN compiler other than Digital Visual Fortran you will have to make some code changes. You will have to change farg.f to use the corresponding getarg and nargs calls provided by your compiler and set the USE lines to the appropriate modules.
- mpe mpe.dsw
The mpe workspace contains two projects used for logging mpich applications. The mpe library is used to profile an application. If you link to mpe.lib before mpich.lib your application will log all the MPI functions and output a clog file. clog2slog.exe is a tool that converts the clog file to an slog file format that can be viewed with Jumpshot.
- mpid nt_server winmpd mpi2.dsw
The mpi2 workspace contains the projects necessary to build the MPD launcher, the configuration tool, the update tool, and other associated libraries.
mpid nt_server winmpd mpich1 mpich1.dsw
The mpich1 workspace contains the projects necessary to build mpirun, mpiregister, and guimpirun. These executables are specific to the mpd launcher.
- mpid nt_server remoteshell remoteshell.dsw
The RemoteShell workspace contains projects necessary to build the DCOM launcher. Only the Debug and ReleaseMinDependency versions have been tested. The UNICODE versions may not work. The RemoteShellServer is the DCOM launcher. mpirun, mpiconfig and mpiregister are tools that work with the DCOM launcher.
You must compile the projects in the mpi2 workspace before compiling the mpich workspace because the mpich dlls depend on the mpd libraries.
Note:
In order to compile cleanly you need to use the header files and libraries from the Platform SDK instead of the VC++ distribution. The files that come with VC6 are very old. The platform sdk has the most recent header files. If you do not want to use the platform sdk files, you will have to do the following to get the projects to compile:
In the mpich project add the following definintion for all configurations:
USE_VC6_HEADERS
2. Adjust the mpirun project
In the mpirun project of the mpich1 workspace remove the definition:
WSOCK2_BEFORE_WINDOWS.
With these changes you can compile all the workspaces using the default libraries and header files provided with MSDEV Visual C++ 6.x.