-
Presentation
Presentation
The Parallel Programming Curricular Unit presents an approach to teaching parallel programming in
heterogeneous environments. This approach allows a smooth transition from the sequential programming
paradigm to parallel programming in heterogeneous environments, enabling students to extract better
performance from current architectures. The programming language used allows portability, as well as
being a free programming language standard, and enabling the use of all the resources of a
heterogeneous architecture. The teaching approach is divided into two components, where the
introductory component addresses the main features of the OpenCL programming language, the
identification of hardware that supports OpenCL in a heterogeneous environment and the configuration of
the development environment. The transition process supports applications with an increasing level of
complexity, allowing the practical teaching of parallel programming in heterogeneous environments.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 6
-
Year | Nature | Language
Year | Nature | Language
3 | Mandatory | Português
-
Code
Code
ULP452-22528
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
Description of contents
- Introduction to parallel programming.
- Reasons that influenced the development of parallel computing.
- Division of parallel computing areas.
- Areas of coverage of parallel processing.
- Basic Parallel Programming Primitives: task control, communication and synchronization.
- Parallel architecture models.
- Division in relation to data flow.
- Division regarding the flow of instructions.
- Division in relation to the control mechanism.
- Commercial parallel machines.
- Parallel machines performance rating.
- Processor interconnection networks.
- Performance measures of parallel applications.
- Obtaining results from parallel applications.
- Computational cost.
- Speedup.
- Efficiency.
- Scalability.
- Exploitation of parallelism in programs.
- Parallel algorithm models.
- Implicit exploration.
- Explicit exploration.
- Parallel programming paradigms.
-
Objectives
Objectives
Study the parallel programming model to realize that it consists of a set of software technologies to
express parallel algorithms and create applications compatible with systems that support parallel
programming. In this context, the areas of applications, programming languages, compilers, library
(computing), communication systems and parallel I/O are included. To overcome the difficulties of
automatic parallelization, an appropriate parallel programming model is identified to develop applications
on a parallel platform.
Develop parallel programming models to be implemented in different ways: as libraries invoked from
sequential programming languages, extended languages, or new execution models. Also, they can be
categorized into two types of systems: shared memory and distributed memory systems.
-
Teaching methodologies and assessment
Teaching methodologies and assessment
Assessment methodology:
Curricular Assessment:
- A global assessment test to be carried out at the end of the semester.
Final Grade = Assessment test grade, with a weight of 70% in the final grade, and a minimum grade of 8 values.
Practical work to be carried out in the classroom, with a weight of 20% in the final grade.
Attendance and participation in classes with a 10% increase. Minimum 70% of attendance in classes.
Final Assessment: All students will be entitled to a final exam.
-
References
References
Czarnul, C. (2018). Parallel Programming for Modern High Performance Computing Systems. Taylor & Francis. ISBN: 9781138305953.
Balaji, P. (2016). Programming Models for Parallel Computing. MIT Press. ISBN: 9780262528818.
Grama, A. (2003). Introduction to parallel computing. 2. ed. Harlow, England: Addison Wesley.
Dongarra, J.J. (2003). Sourcebook of parallel computing. 1. ed. Amsterdam: Morgan Kaufmann.
Herlihy, M., Shavit, N. (2008). The art of multiprocessor programming. 1. ed. Burlington: Elsevier Morgan Kaufmann.
-
Office Hours
Office Hours
-
Mobility
Mobility
No