Title:

Practical Parallel Programming

Code:PPP
Ac.Year:ukončen 2004/2005 (Not opened)
Term:Summer
Curriculums:
ProgrammeBranchYearDuty
EI-BC-3VTB2nd Stage/1st YearElective
EI-MSC-3VTN2ndElective
EI-MSC-5VTI2nd Stage/2nd YearElective
Language:English
Public info:http://www.fit.vutbr.cz/study/courses/PPP/public/
Credits:5
Completion:examination (written)
Type of
instruction:
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Hours:2600026
 ExaminationTestsExercisesLaboratoriesOther
Points:60120028
Guarantee:Dvořák Václav, prof. Ing., DrSc., DCSY
Lecturer:Dvořák Václav, prof. Ing., DrSc., DCSY
Faculty:Faculty of Information Technology BUT
Department:Department of Computer Systems FIT BUT
Prerequisites: 
Operating Systems 1 (OS1), DITS
Follow-ups:
Parallel and Distributed Algorithms (PDA), DITS
 
Learning objectives:
  To get familiar with programming of various parallel systems, especially symmetrical multiprocessors and clusters of workstations. Learn how to write portable programs using standardized interfaces and languages, specify parallelism and process communication. Be able to predict performance of parallel applications.
Description:
  Architectures and components of parallel systems. Programming models, concurrent processes, threads, communication. Design of parallel programs. Message passing: channel communication, routing algorithms, pipeline and farm model, prototyping parallel applications. Shared memory: exclussive access, support in programming languages, thread synchronization. Data parallelism: languages, vector and matrix operations, application examples. Case studies of parallel applications.
Learning outcomes and competences:
  Survey of parallelization techniques of fundamental scientific problems, knowledge of parallel programming in MPI and OpenMP.
Syllabus of lectures:
 
  • Parallel systems architectures, programming models, performance.
  • Parallel processes, threads and communications, efficiency and overhead of parallel processing.
  • Message passing programming, prototyping algorithms in TRANSIM.
  • Programming in MPI, PVM, cluster computations.
  • Designing parallel programs, pipeline computations, dynamic load balancing (farms).
  • Shared variable programming, atomicity, exclusive access, synchronization constructs.
  • Programming in OpenMP.
  • Partitioning, work-pool and divide and conquer strategies.
  • Data parallelism: languages (HPF), operations on vectors and matrices, application examples.
  • Case studies of parallel applications - parallel sorting.
  • Parallel FFT and image processing on different parallel platforms
  • Parallel linear algebra, solution of large systems of linear equations.
  • Searching and discrete optimization, parallel GA and ANN.
Syllabus of laboratory exercises:
 
  • Parallel search of a global minimum.
  • Parallel sorting, performance prediction (Transim).
  • A solution of a large system of linear equations (MPI).
  • Parallel FFT on a SMP (OpenMP, simulation).
Fundamental literature:
 
  • Wilkinson, B. - Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, 1999, ISBN 0-13-671710-1.
  • Andrews, G.R.: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison Wesley, 2000, ISBN 0-201-35752-6.
Study literature:
 
  • Dvořák, V.: Architecture and programming of parallel systems. Lecture Notes FIT VUT v Brně, a manuscript under preparation.
  • 300+ Powerpoint frames available to students.
Progress assessment:
  Assessment of four small projects, a midterm examination.