Go to:
Logótipo
You are in:: Start > CC4014

Parallel Computing

Code: CC4014     Acronym: CC4014     Level: 400

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2018/2019 - 1S

Active? Yes
Responsible unit: Department of Computer Science
Course/CS Responsible: Master in Computer Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
E:BBC 0 PE_Bioinformatics and Computational Biology 1 - 6 42 162
M:A_ASTR 0 Plano de Estudos oficial desde_2013/14 1 - 6 42 162
2
M:BBC 0 The study plan since 2018 2 - 6 42 162
M:CC 10 Study plan since 2014/2015 1 - 6 42 162
M:DS 4 Official Study Plan since 2018_M:DS 1 - 6 42 162
MI:ERS 2 Plano Oficial desde ano letivo 2014 4 - 6 42 162

Teaching language

Suitable for English-speaking students

Objectives

Introduce the students to advanced concepts on the theory and practice of computational models for parallel and distributed memory architectures. Hands-on experience on programming distributed memory architectures with MPI, and programming shared memory architectures using processes, threads and OpenMP.

Learning outcomes and competences

On completing this course, the students must be able to:

  • be aware of the main models, paradigms, environments and tools for parallel programming
  • understand and assess the concepts related to the structure, operation and performance of parallel programs
  • formulate solutions in the main parallel programming paradigms, namely MPI, Pthreads and OpenMP

Working method

Presencial

Program

Introduction and foundations:
Parallel programming, concurrency and parallelism, Flynn taxonomy. Foster's programming methodology. major parallel programming models and paradigms.

Programming for distributed memory architectures using MPI:
MPI specification, explicit message passing, communication protocols, Derived types and data packing, collective communication, communicators, topologies.

Programming for shared memory architectures with processes:
Processes, shared memory segments, shared memory through file mapping, spinlocks, semaphores.

Programming for shared memory architectures with threads:
Multithreading processes with Pthreads, mutexs, conditional variables, keys, implementation of Pthreads.

Programming for shared memory architectures with OpenMP:
OpenMP specification, compilation directives, work-sharing constructors, basic constructors, synchronisation constructors, basic functions, locking functions, environment variables, removing data dependencies, performance, combining OpenMP with MPI.

Performance metrics:
Speedup measures, efficiency, redundancy, usability and quality of a parallel application. Amdahl law. Gustafson-Barsis law. Karp-Flatt metrics.

Parallel algorithms:
Scheduling and load balancing strategies. Parallel algorithms for sorting, search, monte-carlo simulation, matrix and multiplication.

Mandatory literature

Michael J. Quinn; Parallel Programming in C with MPI and OPenMP, McGraw-Hill.
P. Pacheco.; Parallel Programming with MPI, Morgan Kaufmann
B. Nichols, D. Buttlar and J.P. Farrell; Pthreads Programming, O'Reilly
R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald and R. Menon; Parallel Programming in OpenMP, Morgan Kaufmann
M. Mitchell, J. Oldham and A. Samuel; Advanced Linux Programming, New Riders
B. Wilkinson, M. Allen.; Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers , Prentice Hall.

Teaching methods and learning activities

Lecture classes to introduce the concepts and practical assignements to motivate students on experiencing parallel programming in more than one paradigm.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

designation Weight (%)
Exame 70,00
Trabalho laboratorial 30,00
Total: 100,00

Amount of time allocated to each course unit

designation Time (hours)
Estudo autónomo 70,00
Frequência das aulas 39,00
Trabalho laboratorial 49,00
Total: 158,00

Eligibility for exams

All the students can take the exam.

Calculation formula of final grade

Students are assessed by their performance in the following components: (a) two practical assignments worth 3 points each out of 20; (b) a written exam in the final of the semester worth 14 points out of 20. The minimum classification in the written exam is 40%.

Classification improvement

Improvement can only be made to the written exam.

Observations

Contacts: Prof. Eduardo Marques and  Prof. Miguel Areias.
Recommend this page Top
Copyright 1996-2025 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2025-06-14 at 09:41:45 | Acceptable Use Policy | Data Protection Policy | Complaint Portal