Programming Taskbook



User registration   Restore password



1100 training tasks on programming

©  M. E. Abramyan (Southern Federal University, Shenzhen MSU-BIT University), 1998–2024


PT for MPI-2 | Overview


Certificate of state registration of the Programming Taskbook for MPI-2

Download the Programming Taskbook for MPI-2 (ver. 1.6 in English and Russian)

Download MS-MPI 10.1.2

Download MPICH2 1.3 for Windows

Download MPICH 1.2.5 for Windows


Programming Taskbook for MPI-2 (PT for MPI-2) is an extension of the Programming Taskbook — electronic book of educational training tasks. Programming Taskbook for MPI-2 allows to solve tasks on parallel programming based on the Message Passing Interface (MPI) standard 1.x and 2.x (and partially standard 3.x).

Programming Taskbook for MPI-2 was developed with the support of the V. Potanin Charitable Foundation Scholarship Program as one of the winning projects of the grant competition for master's teachers of 2016-2017 in the nomination "New methods and special skills in training".

PT for MPI-2 of the version 1.4–1.6 should be installed in the system directory of the Programming Taskbook (version 4.22 or higher). The tasks that are included in PT for MPI-2 can be solved in C++ in any programming environment for this language supported by the Programming Taskbook:

  • Microsoft Visual Studio 2017, 2019, 2022;
  • Code::Blocks 20.03;
  • Dev-C++ 5.11 and 6.30;
  • Visual Studio Code.

Compiling and running in parallel mode are implemented through usage of components of the MPICH system (MPICH is one of the popular freeware support systems for MPI developed in Argonne National Laboratory, USA). PT for MPI-2 can be used in conjunction with three versions of this system (including MS-MPI, also based on MPICH):

  • MPICH 1.2.5 (, supports the MPI 1.1 standard);
  • MPICH2 1.3 (, supports the MPI 2.1 standard).
  • MS-MPI 10.1.2 (, supports the MPI 2.1 standard, provides faster operation of parallel programs for Windows 10 (requires downloading the msmpisetup.exe installation file). It should be noted that the MS-MPI 10.0 system (which was used in versions 1.3–1.5 of PT for MPI-2) did not support some functions of MPI-2 standard related to parallel file processing. In version MS-MPI 10.1.2 (which is used since version 1.6 of PT for MPI-2) the noted defect has been corrected.

If several versions of MPICH are installed on the computer, one can use the PT4Setup or PT4Load program to select any of these MPICH versions for use with PT for MPI-2. Using the MPICH 1.2.5 is only justified while studying MPI 1.x.

A dynamic library included in MPICH must be linked to studentís programs. Access to the library is provided through a lib file and a set of header files also included in MPICH. Linking of these MPICH components to studentís programs is performed automatically by PT for MPI-2.

Remark. For the correct installation of the MPICH2 system, you must run the mpich2-1.3-win-ia32.msi installation file with administrator rights. To simplify the install procedure, you can use the MPICH2Installer.exe program included in the taskbook since version 1.5.

PT for MPI-2 is a freeware and can be used with both the Complete Edition (PT4Complete-1100) and the Mini Edition (PT4Mini-270) of Programming Taskbook.

Diploma of the winner of the Grant Competition for Teachers of the Master's Program of the Vladimir Potanin Scholarship Program 2016-2017

PT for MPI-2 provides the same learning options as the basic Programming Taskbook's ones; in particular, it passes input data to studentís program, validates results obtained by the program and stores information about each test launch of the program in a special file. In addition, PT for MPI-2 implements a number of features related to the specifics of solving training tasks on parallel programming based on message passing:

  • demo preview of tasks that does not require usage of parallel mode;
  • creation of a project template with modules of the MPI library for a selected training task;
  • a special mechanism that ensures the execution of studentís program in parallel mode during its launch from IDE: the launched program runs the MPIRun.exe application from the MPICH system which in turn runs studentís program in parallel mode (all processes are performed on a local computer);
  • passing unique set of input data to each process of a parallel program;
  • obtaining the required results from each process and passing them to the master process for validation and display in the Programming Taskbook window;
  • displaying information about run-time errors (including errors that occurred during the execution of MPI functions) and input-output errors with ranks of the processes in which these errors occurred;
  • displaying debug information for each process in a special section of the Programming Taskbook window;
  • automatic unloading all running processes from memory even if the parallel program is not responding.

All features listed above allowed student to focus on implementing the solution itself while significantly accelerating its development and ensuring its reliable testing.

PT for MPI-2 contains 9 task groups. The first five of them contain tasks related mainly to the basic features of MPI 1.1, the next three ones are connected with new features of MPI 2.0, and the final group is devoted to parallel matrix multiplication algorithms. 15 tasks were added in version 1.6; they are related to nonblocking collective functions (MPI-3 standard) and can only be run in conjunction with the MS-MPI 10.1.2. Below are the groups of tasks and their subgroups (the number of tasks is indicated in parentheses):

When developing tasks for PT for MPI-2, following new features of the Programming Taskbook of the late versions were used:

  • the Programming Taskbook window with dynamic layout, which allows displaying large task formulations and large sets of initial and resulting data,
  • possibility of adding graphical illustrations to task formulations that is used in the final tasks of MPI5Comm group,
  • possibility of creating special program templates for some tasks that is used in the MPI9Matr group.

To completely test the solution, it is sufficient to run the studentís program from the integrated environment, because once this program is run, it is tested on several sets of input data.

In tasks related to file input-output (the MPI6File group and some tasks of the MPI9Matr group), the special means of the Programming Taskbook are used that allow to include binary files as external input/output data and provide visualization of their contents in the Programming Taskbook window.

When developing the PT for MPI-2, the possibility of displaying debug data obtained from dynamically created processes was added. This feature is used in the tasks of the MPI8Inter group.

Tools of PT for MPI-2 for running and debugging parallel programs may be used for development and testing parallel programs which are not connected with a training task. For that purpose PT for MPI-2 is provided with the additional group MPIDebug of 36 "tasks". Each task from the MPIDebug group allows to run parallel program with N processes, where N is a task order number.

PT4 for MPI-2 contains a task constructor named PT4TaskMaker that allows to develop new groups of tasks for parallel programming. Groups should be created as dynamic libraries (dll-files). In order to make the tasks from the new libraries available for solving, it is enough to copy these libraries to studentís working directory or to the system directory of the Programming Taskbook. PT4TaskMaker is designed for development of dynamic libraries in Microsoft Visual Studio in C++ and consists of two files: pt4taskmaker.cpp and pt4taskmaker.h.

Starting from the version 1.1, Programming Taskbook for MPI-2 provides two language interfaces: Russian and English.

Programming Taskbook for MPI-2 is registered in the Software Register of Russian Federation on February, 2nd, 2018 (the certificate No. 2018611548).




Designed by
M. E. Abramyan and V. N. Braguilevsky

Last revised: