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
- Contains two projects to compile mpich with or without a Fortran
compiler.
- mpich is the shared memory, via, tcp device.
It also contains the MPI-2 file functions provided by Romio for the
NTFS file system.
- mpich_nofortran excludes the Fortran files from
the build in case you don't have a 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 and MPIRegister for MPD.
- 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++ stuff. 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 mpich\mpid\nt_ipvishm\nt_vi.cpp, change the casts in
InterlockedCompareExchange from (LONG volatile *) to (void **) and (LONG) to
(void*)
- In mpich\mpid\nt_server\winmpd\bsocket\locks.h, comment out the
InterlockedCompareExchangePointer line and uncomment out the line above it.
- In the mpich1.dsw workspace, bring up the project settings (Alt F7).
Go to C/C++, Category:[Preprocessor]. Delete the preprocessor definition
- WSOCK2_BEFORE_WINDOWS for all configurations of the MPIRun project.
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