main

::BUILDING MPICH

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 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
  - Contains two projects used for logging mpich applications
  - mpe - Link to this library before the mpich library to profile an application.
  - clog2slog - Applications linked to the mpe library output clog files. This program converts them to the slog file format so they can be viewed with Jumpshot.
- mpid\nt_server\winmpd\mpi2.dsw
  - Contains projects to build the MPD launcher.
  - Compile all the projects. MPD and MPIConfig contain the executables.
  - mpid\nt_server\winmpd\mpich1\mpich1.dsw
    - Contains the projects to build MPIRun, MPIRegister and guiMPIRun.
- mpid\nt_server\remoteshell\remoteshell.dsw
  - Contains projects to build the DCOM launcher. Only the Debug and ReleaseMinDependency versions have been tested. The UNICODE versions may not work.
  - Compile MPIRun, RemoteShellServer, MPIConfig and MPIRegister.

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
- In the bsocket project of the mpi2 workspace add the same definition: USE_VC6_HEADERS
- In the mpirun project of the mpich1 workspace remove the definition: WSOCK2_BEFORE_WINDOWS.
- You can change these definitions from the project settings dialog: Bring up the project settings (Alt F7). Go to C/C++, Category:[Preprocessor].

With these changes you can compile all the workspaces using the default libraries and header files provided with MSDEV Visual C++ 6.x.

main
Compiling an MPI application