CAB401 High Performance and Parallel Computing


To view more information for this unit, select Unit Outline from the list below. Please note the teaching period for which the Unit Outline is relevant.


Unit Outline: Semester 2 2021, Gardens Point, Internal

Unit code:CAB401
Credit points:12
Pre-requisite:CAB301 or IFN505 or IFN564
Equivalent:INB375
Coordinator:Wayne Kelly | w.kelly@qut.edu.au
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of the teaching period.

Overview

Building on your skills in "sequential" programming, this unit teaches you the tools and techniques needed to exploit multi-processor computer systems to achieve dramatic performance improvements for computationally intensive problems. This unit gives you both an understanding of why future computer hardware will be increasingly parallel, the challenges this poses for software development as well as a set of practical skills in creating high-performance programs using today's best tools and techniques.

Learning Outcomes

On successful completion of this unit you will be able to:

  1. Demonstrate an understanding of the basic principles of parallel programming and common features of parallel hardware [Technology].
  2. Apply state of the art techniques to express sequential algorithms as parallel software applications [Design, Build].
  3. Independently learn about new parallel hardware and new parallel programming frameworks [Technology].
  4. Give professional presentations and intelligently discuss and critique alternative parallel programming technologies [Impact].

Content

The major topics covered may be drawn from the following:
  • Principles for dealing with computationally-intensive or 'big data' problems efficiently;
  • Moore's law and the trend towards parallel hardware;
  • High-speed computing frameworks;
  • Practical techniques for parallelizing algorithms;
  • Forms of parallelism (including instruction, data, task and pipelining);
  • Barriers to effective exploitation of parallel computing architectures (including grain size, load imbalance and memory bottlenecks);
  • Static and dynamic techniques and tools for program analysis;
  • Principles of parallel computing (including Amdahl's law);
  • Principles of parallel programming (including synchronization and locks);
  • Problems associated with parallel programming (including race conditions and deadlocks);
  • Forms of synchronization (including critical sections, semaphores, mutexes and barriers); and
  • Design of parallel algorithms.

Learning Approaches

The unit emphasises active, artefact-driven learning as well as colloborative discussion on technical topics. There will be weekly teaching sessions. In the first half of the semester these will be mostly used as a lecture session. You will however be expected to actively participate in group discussions during these sessions and the second half of the semester will be mostly taken up by student presentations. The basic principles will be covered in the lectures, however most of the more technical topics will be learned through assigned readings and self directed research. These topics will then be discussed during the weekly meetings to ensure understanding. You will also undertake a major practical project where you will develop a high-performance, parallel version of a given real world program.

Feedback on Learning and Assessment

Feedback to students
Students will receive a completed assessment criteria sheet for each piece of assessment, detailing their achievement relative to the specified standards.

Assessment

Overview

General assessment information
The major project provides a vehicle for students to apply the knowledge and skills that they have acquired from the lectures and tutorial exercises. Time will be devoted during later practical sessions for students to discuss their progress on the project and get help and advice on any technical issues which may be encountered.
Peer assessment will be incorporated into the oral presentations so that students are forced to reflect on what makes a good presentation, including structure, clarity and key elements covered.

Unit Grading Scheme

7- point scale

Assessment Tasks

Assessment: Project (applied)

You will select a real world software application and manually redevelop it using one of a number of parallel programming frameworks in order to create a 'high-performance' version. The comparative performance of both the original and new versions must be demonstrated both theoretically and empirically. You may work individually or in pairs.

 

Relates to learning outcomes
2

Weight: 50
Individual/Group: Individual
Due (indicative): End Semester
Related Unit learning outcomes: 2

Assessment: Presentation (Oral)

Students will participate in discussions during each lecture and present a technical topic during one of the lecture sessions.

 

Relates to learning outcomes
3, 4

Weight: 20
Individual/Group: Group
Due (indicative): Throughout Semester
Related Unit learning outcomes: 3, 4

Assessment: Examination (written)

Theory exam covering basic principles of parallel computing and parallel programming.

 

Relates to learning outcomes
1

Weight: 30
Individual/Group: Individual
Due (indicative): During central examination period
Examination Period
Related Unit learning outcomes: 1

Academic Integrity

Academic integrity is a commitment to undertaking academic work and assessment in a manner that is ethical, fair, honest, respectful and accountable.

The Academic Integrity Policy sets out the range of conduct that can be a failure to maintain the standards of academic integrity. This includes, cheating in exams, plagiarism, self-plagiarism, collusion and contract cheating. It also includes providing fraudulent or altered documentation in support of an academic concession application, for example an assignment extension or a deferred exam.

You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.

Breaching QUT’s Academic Integrity Policy or engaging in conduct that may defeat or compromise the purpose of assessment can lead to a finding of student misconduct (Code of Conduct – Student) and result in the imposition of penalties under the Management of Student Misconduct Policy, ranging from a grade reduction to exclusion from QUT.

Resources

Various readings will be assigned during lectures, all from publically available web sites. Required software is either installed in on-campus computer labs and/or freely available. Students are not expected to purchase any software or other resources for this unit.
An optional textbook will also be listed on Blackboard for students wanting additional reading resources.

Risk Assessment Statement

There is minimal health and safety risk associated with this unit. It is your responsibility to familiarise yourself with the Health and Safety policies and procedures applicable within campus areas and laboratories.

Course Learning Outcomes

This unit is designed to support your development of the following course/study area learning outcomes.

IN01 Bachelor of Information Technology

  1. Demonstrate well-developed IT discipline knowledge
    Relates to: ULO1
  2. Employ appropriate IT Methods
    Relates to: ULO2
  3. Work independently and within effective teams
    Relates to: ULO3
  4. Communicate effectively in professional contexts
    Relates to: ULO4