WMPI 1.5 Beta

Home
WMPI New Features
Files Included in Release
Compiling a program with WMPI
Running a WMPI program
    The Cluster Configuration
    The Process Group File
    Environment Variables
TCP Device
Shared Memory Device
Examples
   PI Calculation
    MultiPingPong
    Mandelbrot Calculation
License Agreement
Acknowledgments
WMPI Home Page

WMPI 1.5  New Features

This new version of WMPI represents a turning point. Previous versions of WMPI were based on the MPICH implementation and P4. For this version, the core of WMPI was completely redesigned, only the interface is the same. (We keep following the standard!)

The principal new features of WMPI are:

- Thread Safety
- Simultaneous Multiple Device
- Better Performance
- Error Notification
- Ease the Evolution to MPI-2

Note: WMPI 1.5 can not be used in mixed clusters with any former version of WMPI, or any version of MPICH. 

Thread Safety
WMPI's level of thread safety, following the classification given in the section "MPI and Threads" of MPI-2’s chapter 8 ("External Interfaces") is MPI_THREAD_MULTIPLE. This means that multiple threads can make concurrent calls to MPI functions.

The interface presented in the MPI-2 standard is available. On calls to MPI_Init_thread WMPI will always respond with the thread safety level of MPI_THREAD_MULTIPLE regardless of the level that is required. Since the MPI_THREAD_MULTIPLE is a superset of all the others, the users may program using whatever level they need. When calling the MPI_Init function, users will have the same thread safety level as with a call to MPI_Init_thread. Nevertheless, if the program requires the use of multiple threads it is recommended to follow the standard (and call MPI_Init_thread) in order to maintain the program compatibility.

We recommend that users should read section about threads on the MPI-2 standard (Chapter 8 – Section 7 – pages 193-198) before using multiple threads with MPI.

Simultaneous Multiple Device
The new WMPI kernel can use any number of different communication devices. The WMPI kernel (called WML – WMPI Management Layer) uses a carefully defined interface to interact with the devices: the Multiple Device Interface (MDI). This specification of this interface will be made public in the near future and virtually anyone may develop a library for their own devices, thus allowing processes to communicate with any technology they want (e.g. Myrinet, SCI, VIA, etc.) just by plugging in the library (DLL) for the device, as each device corresponds to a DLL of it's own. No source code modification to WMPI is needed to add a new device! Currently we have devices for shared memory and TCP.

Better Performance
During the redesign of the WMPI core, one of the main concerns was to improve the performance of the library. Hence, we have created a lighter structure that reduced the synchronization as well as the memory copies. This resulted in clear performance improvement.
To use features of specific environments for better performance, users may wish to develop a new device, using the MDI interface.

Error Notification
When an error occurred in a previous version and a slave process simply ended, at most you would see that all the processes of the computation would suddenly abort. In this new version, when an error occurs, the user gets a Windows message (equal to "net send" command) from the process that detected the error giving the possible information about it. If both the machines (where the error process is running and the user machine) are in the same Windows domain, the error log will be written in the Applications EventLog.

When an error occurs WMPI makes the best attempt to kill all the processes of the computation. Some of them exit after a timeout, which is set to one minute. 

Ease the Evolution to MPI-2
The move to MPI-2 would require a lot of work for a WMPI implementation that was ported from MPICH. Therefore to ease the evolution to MPI-2, we designed a new internal structure. This beta release contains a base platform ready for the MPI-2 main innovations.
 

© University of Coimbra
Last review 1999/12