University of Nizhni Novgorod

Faculty of Computational Mathematics & Cybernetics

Teaching Course: CS338. Introduction to Parallel Programming


Questions for Discussions.

Exercises.

Assignments:

Besides doing exercises after detailed explanation given by the instructor, each student is supposed to solve independently 3 problems of different level of complexity while doing the laboratory works (self-study training):

·        Two of these exercises should be intended for the development of parallel programs for shared and distributed memory systems and are aimed at mastering the technologies OpenMP and MPI correspondingly. The problems for these type of assignments can be taken in Sections 4 and 5 of the educational materials of the course.

·        The third exercise should consist in the development of parallel program for any algorithm of those discussed in Sections 7-12 of the educational materials of the course.

Course project:

The work on the course project is the final stage of studies within the frames of the course. Doing this work each student should carry out the complete cycle of the parallel software development for soling the problems of sufficiently high level of complexity (the project stages):

-        Stating the project problem,

-        Search for information sources and mastering a number of available algorithms for solving the problem,

-        The well-reasoned choice of methods to be used,

-        The development of parallel method for solving the problem in accordance with the methodology discussed in Section 6 of the educational materials of the course,

-        The theoretical analysis of the efficiency of the developed parallel methods,

-        Software implementation, testing the software correctness, carrying out computational experiments,

-        The analysis of the obtained results, the comparison of the theoretical and the experimental estimations of the efficiency,

-        Presentation of the results.

The project report of the obtained results should be prepared as a Web document, which can be published in Internet. The Web document must contain the following Sections:

-        The statement of the problem to be solved,

-        The general description of the parallel method,

-        The general description of the software development scheme,

-        The results of the theoretical efficiency analysis,

-        The program code (in the form, that can be downloaded),

-        The description of the computational experiments, which have been done,

-        The list of the information sources used.

As  a part of the project implementation it is strongly recommended to develop the means of dynamic visualization of the parallel computation execution process (in simulation mode or in real parallel solving the given problem) – the possible examples of the project presentations are given on http://www.software.unn.ac.ru/ccam/?dir=17.

The project theme can be formulated with regard to the following recommendations:

-        The theme may be suggested by the student and thus, may be related with his study, practical or research activity (this way to choose the project theme is highly recommended),

-        The theme may consist in increasing the complexity or enhancing the problems suggested in Section 7-12 of the educational materials of the course (for instance, in implementing all the described parallel algorithms of matrix multiplication),

-        The theme may consist in changing the statements of the problems discussed in the course (thus, for instance, in matrix multiplication a student may consider sparse matrices or special type matrices instead of dense matrices),

-         The theme may consist in enhancing the spectrum of the discussed problems and methods (methods of matrix computations, graph processing and partial differential equations, problems of digital signal processing and image processing etc.).

The level of complexity of each theme should correspond to the necessity for each student to work independently for 36 hours approximately. Students may execute the project in teams of two (depending on project scale).

The project results should be presented at a seminar as 10-15 minute presentation.

Exams:

The course ends up with an oral examination. The questions and the problems for the exam are formulated on the basis of the course content. The final grade is given to students with regard to all the results achieved:

-        Attendance of lectures – 10%,

-        Participation in practical and laboratory works - 10%,

-        Assignments - 20%,

-        Project - 30%,

-        Exam - 30%.