![]() |
University of Nizhni NovgorodFaculty of Computational Mathematics & CyberneticsTeaching Course: CS338. Introduction to Parallel Programming |
![]() |
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%.