Parallel Software Quality2022VT
|
|
Course plan
Recommended for
Graduate (CUGS, CIS, ...) students with some background in parallel programming and interested in code quality metrics and analysis techniques for parallel software, with special emphasis of multicore, heterogeneous and cluster-level parallelism.
Organization and Schedule
The course will be given under all circumstances, even with only a single
participant. It will run in weeks 2 and 3, i.e., mid january 2022.
- Introductory lecture (ca. 3h) on monday 10 jan 2022 10:15,
- Paper presentation by participants and opposition, 1.5hp
- Miniproject: Small case study with a summary paper, 1.5hp
The course was last given
This is a new course.
Goals and Contents
Software quality is a well-established subject of research for sequential
programming, but for work in parallel and heterogeneous computing it is still
often handled in an ad-hoc way, and there is little systematic research about
it. This course attempts to structure and elaborate on central concepts and the
state of the art in parallel software quality analysis.
We will consider the following quality aspects of programs for parallel,
heterogeneous and cluster systems:
- Determinism, expressivity/flexibility, technical debt, fault tolerance
- Performance, energy efficiency, resource usage
- Programmability and code complexity metrics
- Portability
- Performance portability
- Structured / high-level / domain-specific parallel programming models and
their impact on code complexity
- Static code analysis for parallel programs
- Coding standards / recommendations and refactoring for parallel programs
The course focuses on software for parallel, heterogeneous and cluster systems,
i.e., where performance and efficient resource utilization has traditionally
had a higher priority than "soft" metrics such as code readability.
The course does not consider correctness properties and their verification for
concurrent programs, such as race-freeness, nor of real-time programs, such as
schedulability, for which separate courses exist at the department (at
master-level or PhD level).
Prerequisites
Some background in programming for parallel, accelerator or cluster systems, such as TDDD56 or TDDC78. Knowledge of C or C++.
Literature
Will be announced later.
Examination
- Active participation in the introductory lecture and presentation sessions
- Successful individual paper presentation with opposition
- Successfully completed miniproject with summary paper
Credit
3hp if all examination moments are fulfilled.
Related Courses
This course complements the IDA master-level courses on parallel programming (TDDC78, TDDD56) which are also open to PhD students.
Comments
The course will be given under all circumstances, even with only one
participant.
We do not guarantee that it can be given on distance.
Page responsible: Director of Graduate Studies