Parallel Computing
Keywords |
Classification |
Keyword |
OFICIAL |
Programming |
Instance: 2010/2011 - 2S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
MIEIC |
23 |
Syllabus since 2009/2010 |
4 |
- |
6 |
56 |
162 |
Teaching language
Suitable for English-speaking students
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
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
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 with final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
42,00 |
|
|
Practical homework |
Teste |
16,00 |
|
|
Programming projects |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
60,00 |
|
|
Exam |
Exame |
2,00 |
|
|
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Reading |
Estudo autónomo |
42 |
|
|
Total: |
42,00 |
|
Eligibility for exams
Concluding and presenting the programming assignments.
Calculation formula of final grade
Final Grade= 0.5*Cont + 0.5*Ex
Cont – Programming assignments and class participation
Ex – Exam grade
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.
Suitable for foreign students.