University of Nizhni Novgorod

Faculty of Computational Mathematics & Cybernetics

Teaching Course: CS338. Introduction to Parallel Programming


Laboratory Works with the use of the system ParaLab

The software system Parallel Laboratory (ParaLab) provides the possibility of carrying out computational experiments for studying and researching the parallel algorithms of solving complicated computational problems. The system may be used for organizing a set of laboratory works on various courses in the area of parallel programming. ParaLab may be also used to conduct research into estimating the efficiency of parallel computations.

For those who only start to study the problem of parallel computations, the system ParaLab is very useful, as it allows them to master the parallel programming methods. Experienced users may use the system in order to estimate the efficiency of new parallel algorithms, which are being developed.

The laboratory works with the use of ParaLab may be organized for the execution of the following exercises:

·         Modeling multiprocessor systems (choosing the network topology, setting the number of processors and their performance, choosing the data communication method and setting the network parameters),

·         Stating the problems to be solved and setting the problem parameters.

·         Choosing the parallel method for solving the problem and setting the method parameters,

·         Setting the graphic indicators for visualizing the process of parallel computations (the state of processor data, data communications between processors, the current estimation of the problem solution),

·         Carrying out the computational experiments in simulation mode (sequential or step–by-step calculations, series of experiments, several experiments in time sharing mode),

·         Analyzing the experiment results accumulated in the experiment log (efficiency of parallel computations with respect to the problem size of the number of processors),

·         Carrying out the experiment in real parallel computation mode (remote access to multiprocessor system (cluster); the comparison of the theoretical estimation and the real experimental results).

The laboratory works carried out with the use of the system ParaLab may be implemented according to the following scheme:

·         A student simulates a multiprocessor system, then solves a problem by means of several parallel methods, compares the results and interprets them according to the theory of parallel algorithm development,

·         A student simulates several multiprocessor systems in order to demonstrate main theoretical concepts of parallel computations,

·         A student simulates one or several multiprocessor systems and solves  problems under various values of the system parameters, thus studying the influence of the parameters on the time characteristics of the algorithm,

·          A student carries out real computational experiments in the mode of remote access to the cluster and compares the results of the real and simulation experiments.

In practical use of the system ParaLab in training students the following scheme for carrying out laboratory works can be recommended.

1. Introduction to the system ParaLab

Lab 1. Getting started

Main commands of the system. Using help.

Lab 2. Simulating a multiprocessor system

Choosing the network topology. Setting the number of processors and their performance. Setting the network parameters: latency and bandwidth. Choosing the data communication method.

2. Studying the parallel methods

Lab 3. Studying the parallel sorting methods

Carrying the computational experiments with the bubble sort on multiprocessor systems of various topologies. Studying the algorithm time characteristics. The comparison of the bubble sort algorithm and the Shell sort algorithm. Studying the quick sorting algorithm. The comparison of the time characteristics and the number of iterations for all the sort methods to be studied.

·         The experimentation with the graphic forms of the system ParaLab for visualizing the process of the experiment execution (demonstration rate, visualization method of data communications, step-by-step mode of the algorithm iteration execution, demonstrating the processor calculations).

Lab 4. Studying the parallel matrix multiplication methods

Carrying out the computational experiments with the block-striped matrix multiplication method. Studying the Fox and Cannon methods. The comparison of the experimental results accumulated in the experiment log.

Lab 5. Studying the parallel graph calculation methods

Studying the means of the system ParaLab for manipulating with graphs (generating, editing, saving, loading, etc.). Carrying out the computational experiments with the use of the Prim algorithm to search the minimum spanning tree and the Dijkstra algorithm for finding the shortest paths.

3. Matching the simulation and real parallel calculations

Lab 6. Carrying out the real parallel experiments

Carrying out the several experiments with one of the problems in the mode of remote access to the computational cluster. Evaluating the dependencies of time characteristics of the experiment execution with respect to the problem size and the number of processors.

Lab 7. Making a comparison of the real and simulation experimental results

Carrying out the several experiments in the simulation mode and the mode of real parallel computations. The comparison of the experimental results. Estimating the parameters of the multiprocessor system for the simulation experiment, which provide the maximum closeness of the results of the simulation and real parallel experiments.


Instructions on configuring the system ParaLab for carrying out real parallel experiments on high performance cluster