Parallel Computing
| Keywords |
| Classification |
Keyword |
| OFICIAL |
Science and Technology Programming |
Instance: 2011/2012 - 2S 
Cycles of Study/Courses
| Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
| PRODEI |
5 |
Syllabus |
1 |
- |
7,5 |
70 |
200 |
Teaching language
English
Objectives
The main objective is the acquisition of useful knowledge towards the simultaneous use of several processors in a computation system, by exploring techniques and technologies of parallel programming.
The skills to be acquired include:
- design and implementation of parallel algorithms adapted with the possible multi-processing architectures;
- choosing apropriately the programming models or patterns and estimate its performance;
- the fluent use of MPI and OpenMP;
- identifying and solve possible synchronization problems.
Program
Introduction:
- Distributing computations and parallelism, Parallel machines, Processors and multicores, Memory organization
Parallel Programming Fundamentals:
- Problem Division, Communication Patterns, Synchronization, Granularity of Parallelization, Scheduling (distribution of work by the processors)
Multi-computer and multi-processor programming:
- Use of MPI and OpenMP
- Other frameworks and tools
Data Parallel programming with GPUs.
Characterization of Parallel Computing:
- Execution Models, Programming Models, Computing Models, Efficiency and performance Measures, Expansivity (Isoefficiency Function)
Mandatory literature
Quinn, Michael J.;
Parallel programming in C with MPI and openMP. ISBN: 007-123265-6
Calvin Lin, Lawrence Snyder; Principles of Parallel Programming , Pearson, Addison Wesley, 2009. ISBN: 0-321-48790-7
David B. Kirk, Wen-mei W. Hwu; Programming Massively Parallel Processors, Morgan Kaufmann, 2010. ISBN: 978-0-12-381472-2
Complementary Bibliography
Foster, Ian T.;
Designing and building parallel programs. ISBN: 0-201-57594-9
Teaching methods and learning activities
Theoretical classes: exposition of the subject matter with presentation and discussion of examples.
Theoretical-practical classes: problem solving and discussion, including the development of some programs.
Software
Visual Studio 2008 Professional (C#/C/C++)
MPI
keywords
Technological sciences > Technology > Computer technology > Software technology
Evaluation Type
Distributed evaluation without final exam
Assessment Components
| Description |
Type |
Time (hours) |
Weight (%) |
End date |
| Attendance (estimated) |
Participação presencial |
42,00 |
|
|
| Class work |
Teste |
30,00 |
|
2012-06-03 |
| Reports to submit for evaluation |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
100,00 |
|
|
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
| Description |
Type |
Time (hours) |
End date |
| Personal study |
Estudo autónomo |
28 |
2012-06-03 |
|
Total: |
28,00 |
|
Eligibility for exams
Concluding and presenting the programming assignments.
Calculation formula of final grade
Final Grade= 0.5*R1 + 0.5*R2
R1 - Report 1
R2 - Report 2
Special assessment (TE, DA, ...)
The programming assignments are mandatory and must be worked out and presented along the semester.
Classification improvement
The programming assignments can only be improved in the course next instance.
Observations
Fluency in C/C++ programming is required.