next up previous contents
Next: Test Tool Applet Up: IMPI Testing Previous: IMPI Testing

Summary

This document outlines the current design and implementation for a Web-based IMPI conformance testing system. This is a work in progress, comments and suggestions are welcome.

This tester is designed to verify the correct implementation of the IMPI specific protocols and not to test an MPI implementation against the MPI specifications. The full testing of MPI is well beyond the scope of this tester. This version of the IMPI tester operates only within the C implementation of MPI. The testing of IMPI within a Fortran or C++ environment is not yet planned.

To help describe this testing environment, some conformance testing terminology will be used. The implementation of the IMPI protocol to be tested will be referred to as the Implementation Under Test (IUT). The IUT will be running on a System Under Test (SUT). The SUT refers to all the hardware and software needed to run the IUT. The person running the test will be called the tester.

The steps taken by a tester to run the IMPI conformance tests are outlined below. Figure 5.1 shows this testing scheme graphically. The numbers in this figure indicate the order in which the communications channels are established initially. The dashed lines are HTTP Web communication (connection-less communications, stateless). The solid lines are connection-oriented TCP/IP sockets. The dotted line is direct tester interaction with the SUT.


  
Figure 5.1: IMPI Test Architecture
\includegraphics[scale=0.5]{Arch.eps}

Figure 5.3 shows the levels of communications protocols involved in this testing. We are most interested in verifying the operation of the IMPI level of this communications stack so the tests will originate in the MPI level (an upper-tester). We will also have a lower-tester which will be able to examine the IMPI protocol packets as they are received from the SUT. This lower-tester will be implemented by instrumenting the Model IMPI implementation directly. The Model IMPI implementation will be part of the IMPI Test Manager.

Once the tester starts the IMPI test interpreter on the SUT, the IMPI startup protocol will begin between the IUT and the Model IMPI implementation running on the NIST IMPI test server. If the startup protocol succeeds, the IMPI Test Manager will present to the tester a menu of options. The format used to display this menu will likely change as the number of available tests increases. If the startup protocol fails, error recovery will be attempted and as much information as possible about the startup negotiations will be provided to the tester.


  
Figure 5.2: IMPI Test Home Page
\includegraphics[scale=0.5]{IMPI-home.eps}

Assuming the startup protocol succeeded, the tester may select a test or group of tests to be run. The Test Manager will then begin running the tests by sending each test, one at a time, to the processes running on the SUT. Each test will determine the result, either Pass/Fail/Indeterminate, and this result will be sent to the Test Tool for display (see Figure 5.4). Once all of the requested tests have been run, the tester may select more tests or discontinue testing.

For each test, the tester may obtain, through the IMPI web page, the source for the script that is being interpreted. We might also provide links into the IMPI or MPI documents for the text that specifies the part or parts of the protocol that this code is intended to test. In the future, we may also provide a file for downloading which gives a summary of all the tests that have been run, including the results.

The full testing of the IUT must include varying the impirun command-line options. The command-line can specify relative the ranks of the SUT nodes within the MPI_COMM_WORLD group. Also, tests must be made using a single node of the SUT as well as multiple nodes. The tester must therefore follow instructions given in the Test Tool as to the proper impirun command-line to execute each time the test interpreter is started. Although it would be preferable to automate this, we do not yet, and probably will never, have this capability. However, we will at least provide the tester with command-lines in the Test Tool window to cut & paste.

Starting with Java SDK version 1.1, it will be possible to gain access to the disks on the machine running the Test Tool, as well as run external programs on that machine. This will be allowed if the tester certifies that the Test Manager is trusted. How this is will implemented in the browsers is not yet known. Many Web browsers in use are still using Java SDK 1.0, and those that have been updated to version 1.1 have not implemented this feature, so this is not yet an option. Even with this ability, it is not clear that we will be able to automate the running of impirun on the SUT.

Tests will also be provided to allow additional IMPI/MPI implementations to participate in the tests, in addition to the IUT. These tests will be needed to fully exercise the IMPI/MPI protocols.


  
Figure 5.3: IMPI Test Communications Stack
\includegraphics[scale=0.5]{MPI-Stack.eps}


next up previous contents
Next: Test Tool Applet Up: IMPI Testing Previous: IMPI Testing
IMPI Protocol ver 0.0
DRAFT March 22, 1999