NT-MPICH
Zurück zur LfBS Homepage
NT-MPICH: Overview
Navigation
Project Description Since the presentation of the first standard in 1994, the Message Passing Interface (MPI) has become one of the most common API specifications for parallel programming. The freely available Open-Source implementation MPICH was very important for this development. MPICH is the most commonly used, freely distributed implementation of the MPI-1 standard (including parts of the MPI-2 standard) which is also used as a base for commercially distributed MPI Implementations.

Until version 1.2 of MPICH it had no Windows NT support. Therefore people working on this platform had to choose between mostly commercial MPI implementations which come in binary form only and quite old and no longer supported ports of MPICH.
So in conjunction with our SCI-MPICH project we started to port MPICH to Windows NT. To our surprise this was fairly easy (congratulations to the people at ANL) and the first ping-pong program using the SCI device was running after only 4 hours. Encouraged by this experience, we decided to offer a TCP device for Windows to make NT-MPICH also useful for clusters only connected via standard networks. The first idea was to port the ch_p4 device which is the de-facto standard on ethernet connected clusters. But we decided that it is preferable to implement a new device, making use of the sophisticated features of the Winsock 2 layer. The reasons for that are twofold:

  1. The p4 device is not celebrated for its performance.
  2. P4 makes heavy use of signals and the fork() system call which makes it hard to port it to NT. Nevertheless there are ports of p4 to NT.
So we created ch_wsock which performs well and offers real nonblocking communication. It makes use of the advanced features of WINSOCK 2 like overlapping I/O. Together with SCI-MPICH NT-MPICH builds MP-MPICH (Multi Platform MPICH).
Since version 1.2 MPICH comes with Windows NT support (called MPICH.NT). Because NT-MPICH is more complete and provides better performance we decided not to abandon the project.
What is included? NT-MPICH includes everything that is included on the standard MPICH 1.2 distribution, but not everything works on NT. Basically the current version has ports for:
  • The MPI-Layer. This is the whole bunch under /src in the MPICH source tree, including the Fortran bindings. They have been tested with MS Fortran PowerStation 4.0, Intel Fortran 4.5 and the Salford FTN77 compiler. Also supported (but currently untested) are Compaq Visual Fortran, Absoft FortranPro, Lahey LF77/95, and the Portland Group compiler.
  • The ch_shmem device. This is a ported and improved version of the lfshmem device as used under UNIX with a modified startup code that works under NT.
  • All MPE functions with complete support for logging (ALOG, CLOG and SLOG) and graphics.
  • MPI-IO: ROMIO is included in NT-MPICH. We created a new ADIO device for NT (see below).
  • C++ Bindings: The C++ bindings from Notre-Dame have also been ported. Currently the profiling interface for the C++ functions is not supported.
  • profiling library: NT-MPICH supports the complete profiling interface and contains a port of the wrappergen utility.
  • Tools:
    • Jumpshot for visualizing CLOG log files and
    • Jumpshot-3 for SLOG log files.
    • Wrappergen, to create profiling wrappers.
  • A device called ch_wsock that can be used on TCP/IP connected clusters. This is where the most work has been done.
  • The ch_smi device from SCI-MPICH. It is intended to be used on SCI connected clusters and is now fully functional under NT.
  • A combined device called ch_wsock2 that consists of a combination of ch_ntshmem and ch_wsock. This device supports both SMPs and nodes connected over a network. Also combinations of both are possible.
  • An ADIO device for ROMIO called ad_ntfs. This device supports all filesystems NT supports. However, we are not quite sure if the device works correctly on SMB filesystems as far as consistency is concerned. We did not notice any probles yet but of cause that does not mean that there are no problems. So if you notice any inconsistencies when using ad_ntfs on network drives please tell us.
  • remote execution tools:
    • A service called Cluster manager that can be used to gather information about remote computers and to start processes on them.
    • A graphical frontend to the cluster manager, called RexecShell.
    • A command-line frontend to the cluster manager called mpiexec.
    • An MPE graphics server, used to display MPE graphics.
System requirements The NT-MPICH distribution has been developed under Windows NT 4.0 and XP Professional with MS Visual C++ 6.0 on x86 machines. If you own a non-x86 based NT system we would be very interested if NT-MPICH compiles and runs on it.

NT-MPICH is implemented as a dll. So to use the binaries you need a compiler that is able either to link VC++ 5.0 import libs or a tool that can make use of a dll in a different way. Since the Fortran bindings are located in a static library your Fortran compiler's linker must be able to link VC++ 6.0 static libraries. If you want to compile the sources, VC++ 6.0 is required.

For starting an MPICH program a tool to start programs on remote computers is needed. Unfortunately NT has no standard mechanism to do so. However, there are several solutions for this problem on the internet. So if you already have installed such kind of tool you are ready to compute. If you don't, we offer a sophisticated tool for NT based clusters called NTRexec. It is included in both the source and binary distribution of NT-MPICH.

Performance We ran a simple ping-pong test as described on the MP-MPICH performance page to compare the performance of NT-MPICH with that of other implementations. These results show that our decision not to port ch_p4 was correct.
Furthermore we ran the Pallas MPI Benchmark for a lot of different MPI implementations. The PMB results are also online.
Further information The Windows Clusters Resource Centre offers a lot of information about Windows NT/2000 PC computational clusters. It is updated regularly to provide most current information. It is a good starting point to find information about Windows based clusters.
Download NT-MPICH is available as source code and as binaries.
Because NT-MPICH is integrated into MP-MPICH, you can retreive NT-MPICH via the MP-MPICH download link.
What's new? Notable events and announcements in reverse chronological order:
26.Jun02 A patch release of MP-MPICH (version 1.3.0-a) is available on the download page. Remote reboot and shutdown are added to the remote execution tools.
People & Contact If you want to contact the MP-MPICH development team, please send a mail to mp-mpich@lfbs.rwth-aachen.de.

The people that are more or less involved into MP-MPICH are:

  • Silke Schuch
  • Martin Pöppe
  • Karsten Scholtyssik is the original author of NT-MPICH & NT tools
  • a varying number of students
  • Mailing List We have installed an MP-MPICH mailing list for announcements and discussion. To subscribe to this list, send a mail to the mailinglist manager or use the online form.

    If you want to get a notification when this page changes (which mostly will occur by additions in the "What's new" section and might occur more frequently than announcements via the mailing list), you may use a service offered by Netmind. Because we note all relevant changes and updates of all parts of MP-MPICH (which are NT-MPICH and SCI-MPICH), it is sufficient to just watch this page.


    Powered by NetMind
     
    Click Here
    Letzte Änderung: 3.07.2002 
    Verantwortlich für diese Seite
    Silke Schuch Haftungsausschluss