SOFTENG 751

High Performance Computing

Summary


Semester

Semester 1, 2019

Staff

Contents


Calendar notes

Advanced parallel and high performance computing concepts and techniques such as memory architecture and networks; multicores, hardware acceleration devices; shared memory and data parallel programming; object oriented and low level parallel programming; parallelisation process: subtask decomposition, dependence analysis and scheduling. Core concepts are extended by a hands-on research project in which a challenging parallel computing problem is analysed and solved.
Prerequisite: 15 points from SOFTENG 306, COMPSYS 302, MECHENG 313, or 30 points at Stage III in Computer Science

Further notes

The course is divided into two parts:

The first part consists of lectures and tutorials given by the lecturer(s), covering the fundamentals of parallel computing, technologies and practical methods. Test 1 will assess the learning of this first part.

Equipped with the knowledge of the first part, student form small groups and each is given an assignment for the second part of the course during which they work largely independent on that topic. There are numerous well selected topics and each group needs to give a presentation on that topic to the class. This induces peer-learning and exposes the class to more advances topics of parallel computing. Test 2 will cover the material presented during the second part of the course.

Outcome mapping


Intended learning outcomes
Related graduate attributes
Related assessments

Architectures of parallel systems: Students will be able to choose the most appropriate architecture for a given problem.

No related attributes

No related assessments

Parallelisation process: Students will be able to divide a problem or loop into subtasks or iterations. They will be able to analyse dependences of a simple programs and loops. They will be able to construct a correct schedule for the subtasks or iterations.

No related attributes

No related assessments

Performance of parallel systems: Students will be able to use parallel computing laws to predict speedup of a program and to analyse were improvements need to be made.

No related attributes

No related assessments

Concurrency: The student will be able to identify performance problems in interactive programs. They will be able to use multithreading to introduce concurrency. They will be able to write correct and responsive interactive programs. The student will be able to use lock and synchronisation primitives correctly and effectively.

No related attributes

No related assessments

Parallel Programming: The student will be able to write programs to be executed on a multicore system. They will be able to analyse simple applications and develop strategy for their parallelisation on shared memory machines. They will be able to choose and employ different parallelisation technologies, such as OpenMP or task parallelism with Parallel Task.

No related attributes

No related assessments

Architectures of parallel systems: Students will be able to choose the most appropriate architecture for a given problem.

No related attributes

No related assessments

Parallelisation process: Students will be able to divide a problem or loop into subtasks or iterations. They will be able to analyse dependences of a simple programs and loops. They will be able to construct a correct schedule for the subtasks or iterations.

No related attributes

No related assessments

Performance of parallel systems: Students will be able to use parallel computing laws to predict speedup of a program and to analyse were improvements need to be made.

No related attributes

No related assessments

Concurrency: The student will be able to identify performance problems in interactive programs. They will be able to use multithreading to introduce concurrency. They will be able to write correct and responsive interactive programs. The student will be able to use lock and synchronisation primitives correctly and effectively.

No related attributes

No related assessments

Parallel Programming: The student will be able to write programs to be executed on a multicore system. They will be able to analyse simple applications and develop strategy for their parallelisation on shared memory machines. They will be able to choose and employ different parallelisation technologies, such as OpenMP or task parallelism with Parallel Task.

No related attributes

No related assessments

Assessment


Coursework

Assessment components are:
===
* Test 1, 20%
* Test 2, 20%
* Assignment 60% (consisting of presentation (20%), implementation (20%) and report (20%)).
- the presentation mark (20%) is composed of three components: lecturer mark (8%), peer mark (8%), peer marking participation (4%)

Test material
---
Test 1 covers the material delivered until test 1 and test 2 covers the material delivered after the cut-off for test 1 until test 2. This explicitly includes student presentations during that time.


Assignment groups and topic
---
For the assignment, students need to form groups of three and select one of the assignment topics announced by the lecturers in week 5 or 6. While working in a group, the marking will be individual and all students need to contribute to all components, i.e. to the presentation, implementation and report.


Presentation
---
At the time of the topic allocation, each group will be given a slot in the lectures during which they need to make their presentation. The allocation of topics and slots will be on a first-come-first-serve basis after the topics and slots are announced. Test 2 will be mostly based on the student presentations, hence students need to attend each others presentations.

The presentations will be marked by the lecturer (8%) and also by the students (8%). For the participation in the peer marking, students receive 4% if they have marked enough peer presentations (details to be advised later).

File Repository
---
Each group will use a private file repository (github) for all code, scripts, documents (including report and presentation slides), figures, images and other digital artefacts related to the project. This repository also serves for the submission of the implementation at the due date. Each member should commit their own work during the semester. Indicate joint work in the commit messages. In general, commit messages must be meaningful and will be considered in the marking of the implementation and report. It is NOT acceptable to use another repository during the semester, only making a final commit at the end.


Report
---
One per group, submitted on Canvas. Format: 8 pages, single column, 2.5cm margins, 11 point font. Include table of contributions by each member.

Peer evaluation/feedback
---
A Teammates based peer evaluation will be carried out at the end of the assignment. This will give the students the opportunity to convey feedback to their group members and To the lecturing team. It will also help to more fairly mark the individual contributions of each team members. Students will receive an email towards the end of the semester, inviting them carry out the peer evaluation. This must be completed by all students. A corresponding Teammates invitation email will be send out towards the end of the semester.


Late penalties (assignment implementation and report)
---
24h: -15% of achieved marks
48h: -25% of achieved marks
>48h: 0 marks

Exam rules

No exam.

Inclusive learning

Students are urged to discuss privately any impairment-related requirements face-to-face and/or in written form with the course convenor/lecturer and/or tutor.

Other assessment rules

No description given

Academic integrity

The University of Auckland will not tolerate cheating, or assisting others to cheat, and views cheating in coursework as a serious academic offence. The work that a student submits for grading must be the student's own work, reflecting his or her learning. Where work from other sources is used, it must be properly acknowledged and referenced. This requirement also applies to sources on the world-wide web. A student's assessed work may be reviewed against electronic source material using computerised detection mechanisms. Upon reasonable request, students may be required to provide an electronic version of their work for computerised review.

All students enrolled at the University of Auckland are required to complete a compulsory Academic Integrity course, usually in their first semester/year of enrolment. The University of Auckland’s full guidelines on procedures and penalties for academic dishonesty are available here.

This site intends to guide you through your chosen specialisation at the Faculty of Engineering. The semester links lets you view detailed course information for your chosen course. Please note that the structure displayed for your specialisation here will reflect what’s available over the upcoming semesters, but detailed information may be from a previous year.

All the information here is accurate at the time of publication, but you are are advised to additionally consult our official document, the University of Auckland Calendar, for accurate academic regulations, requirements, and policies.