Distributed and Parallel Programming
Keywords |
Classification |
Keyword |
OFICIAL |
Programming |
Instance: 2008/2009 - 2S
Cycles of Study/Courses
Teaching language
Portuguese
Objectives
1- BACKGROUND
Parallel and distributed computing is becoming the computing paradigm as hardware tends to multi-processing units. The common desktop is today built with multicore processors that collectively have more processing power, than the single core processor, but cores are individually less powerful. Programmers will have to deal with multiprocessor architectures in order to use effectively the machines of today and of the future.
2- SPECIFIC AIMS
Acquisition of useful knowledge to develop parallel programs. Construction of solid basis in parallel architectures, algorithms parallelization, programming models, synchronization of processes and performance measures by the development of programs.
3-PREVIOUS KNOWLEDGE
Students should had completed successfully the programming subjects of the 1st and 2nd year.
4-PERCENT DISTRIBUTION
Scientific component:60%
Technological component:40%
5- LEARNING OUTCOMES
Students should be able to:
a) Analyze a problem and identify the adequate parallelization model (Knowledge and Understanding)
b) Write message-passing and shared memory programs (Engineering Analysis, Engineering Practice)
c) Design parallel solutions for new problems (Engineering Design)
d) Use computational models to estimate applications computation time (Investigations)
e) knowledge of process concurrency and best practices to implement resource sharing (Transferable skills)
Program
PARALLEL PROGRAMMING FUNDAMENTALS:
Problem Division, Communication Patterns, Synchronization, Granularity of Parallelization, Staggering (distribution of work by the processors)
MULTI-COMPUTER PROGRAMMING:
Introduction to PVM, MPI and OpenMP
CHARACTERIZATION OF PARALLEL COMPUTING:
Execution Models, Programming Models, Computing Models, Efficiency and performance Measures, Expansivity (Isoefficiency Function)
INTRODUCTION TO DISTRIBUTED COMPUTING IN INTERNET ENVIRONMENT:
P2P and Grid systems. Application characteristics.
Algorithms for content distribution in p2p systems.
Grid models and middleware evolution.
Mandatory literature
M. J. Quinn; Parallel Programming in C with MPI and OpenMP, McGraw-Hill, 2003. 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 contents with presentation and discussion of examples.
Theoretical-practical classes: problem solving and discussion, including the development of some programs.
keywords
Technological sciences > Engineering > Computer engineering
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
39,00 |
|
|
Course work |
Trabalho escrito |
36,00 |
|
|
Exam |
Exame |
3,00 |
|
|
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Study |
Estudo autónomo |
36 |
|
Exam preparation |
Estudo autónomo |
30 |
|
|
Total: |
66,00 |
|
Eligibility for exams
Not exceed the maximum number of absences to classes (25%) and deliver the course work.
Calculation formula of final grade
Final Grade= 0.4*Cont + 0.6*Ex
Cont – Course work and class participation
Ex – Exame grade
Examinations or Special Assignments
Course work: program development and report esplaining the parellelization of a given problem.
Special assessment (TE, DA, ...)
The student must do the final exam and produce a report about a work identical to the one required to ordinary students.
Classification improvement
Course work can be improved in the next edition of the subject. There is a second exam where students can improve from the first one.