Hide menu

Parallel Software Quality

2022VT

Status Running - no longer open for registrations
School IDA-gemensam (IDA)
Division PELAB
Owner Christoph Kessler
Homepage https://www.ida.liu.se/~chrke55/courses/PSQ/index.shtml

  Log in  




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