TMA4280 Introduction to Supercomputing -- Spring 2018
Lectures will be on Fridays 13-15 from week 4 onwards.
Examination Sessions: please fill the attendance poll
For any contact by email, please add 'TMA4280' to the subject.
- Introduction survey to fill in by January 17. 2018
- Application form for access to IDUN/Lille to return by January 26. 2018.
- 20180112: Due to a collision with another course, Friday lectures need to be rescheduled.
- 20180110: Updated schedule.
- More questions? Please book a time on Thursday 17-19 or Friday 15-17.
The objective of this course is to give a brief introduction to modern computer architectures and to discuss numerical algorithms for vector and parallel processing.
|Projects||40%||Project I + II|
|Written examination||60%||2018-05-16 9-13|
Grades will follow the scale:
The reference lecture notes are used and will be updated based on feedback.
Course material used during the lectures will be uploaded and linked from this page right after each corresponding lecture to take account of any feedback.
For each lecture the corresponding chapter in the lecture notes is indicated.
|2||Presentation of the Curriculum||-||L00|
|2||Introduction to Supercomputing||Ch.1||L01|
|3||Computing architectures Part 1||Ch.2||L02|
|4||Computing architectures Part 2||Ch.4||L03|
|5||Distributed memory model - MPI Part 1||Ch.4||L04|
|6||Distributed memory model - MPI Part 2||-||L05|
|7||Shared memory model - OpenMP||Ch.5||L06|
|8||Supercomputer tutorial and Project Q&A||Banachrommet|
|10||Solving PDEs: the Poisson problem||Ch.7||L07|
|11||Direct linear solvers||Ch.9 (to be uploaded)||L08|
|12||Project Topics: Diagonalization and Finite Elements|
|14||Iterative linear solvers||Ch.9 (to be uploaded)||L09|
|15||Introduction to PETSc and MPI-IO||L10 L11|
|16||Examination Preparation 1||Reviewed Problems 1 and 2 from 2006||R00 Examination Requirements|
|17||Examination Preparation 2 [April 27. Room B22 13-15]||Reviewed Problems from 2015 and 2016||Exam Preparation Notes|
|18||Examination Preparation 3 [April 30. Room B22 15-17]|
|Examination Preparation 4 [May 1. Room B22 15-17]|
|Examination Preparation 5 [May 2. Room B22 15-17]||Reviewed Problems from 2017|
The following documents contain examination question with suggested solutions: a subset will be reviewed on Week 16 and further questions can be asked during office hours.
Weeks 3-4 are planned for students with little experience in programming and UNIX environments. No compulsory assignment is planned before early February.
|2||Presentation of the curriculum||Planning, practical details, and questions|
|3||Introduction to the UNIX environment and tools||A short course for students with no prior experience in UNIX. C00|
|4||Lab||C/C++ Programming and tools C01: Finish Ex03, 04|
|5||Lab||Basic programming and exercises Ch.1-2 E01: Ex01, 02, 03, 04, 06 then prepare C01, Ex06, 07|
|6||Lab||Basic programming and exercises Ch.1-2 E02|
|7||Project I||Start of Project I P01 See L05 for support material.|
|8||Project I||Supercomputer tutorial|
|9||Project I||Project I Guidance|
|10||Lab||Project I Guidance|
|11||Lab||MPI exercises E03 (Optional)|
|12||Project II||Start of Project II P2A: Diagonalization P2A: Code P2B: FEM P2B: Guidance|
|14||Project II||Project II Guidance|
|15||Project II||Project II Guidance|
|16||Project II handout||Project II Guidance|
Labs are not compulsory but recommended for people with very little experience in UNIX environments and programming.
Exercices for the next week are posted on this page as well as material for UNIX and programming depending on the demand.
For people missing the Labs, the Git repository here will be updated with previous exercises:
From Week 3 (inclusive) labs will be in the Banach room.
- Project I : 10% of the final grade, deadline March 7. 2018.
- Project II: 30% of the final grade, deadline April 20. 2018.
Access to IDUN/Lille
The required form should be returned latest Week 6.
Please refer to the tutorial page for more information on how to work on IDUN/Lille.
A virtual machine image is made available to people using non-UNIX operating systems. Steps for installing the Vagrant box are described in this tutorial. You will need at least 20GB on the disk to be able to install the virtual machine.
No textbook is made compulsory for this course but optional references will be provided for the sake of completeness. The lecture notes lecture notes serve as reference course material. References provided in the list below are just a way to learn beyond the scope of the course.
The Introduction to parallel programming offered at NTNU provides further material and references.
Parallel Scientific Computing textbooks
- Goldberg D., What Every Computer Scientist Should Know About Floating-Point Arithmetics, ACM Computing Surveys, Vol 23, No 1 (1991) PDF
- Flynn M. J., Some Computer Organizations and Their Effectiveness, IEEE Transactions on Computers, Vol C-21, No 9 (1972)PDF
- Duncan R., A Survey of Parallel Computer Architectures, IEEE Survey and Tutorial Series (1990) PDF
- Hennessy, J. and Patterson, D., Computer Architecture: A Quantitative Approach, 5th Edition, Elsevier (2011) LINK
- Drepper, U., What Every Programmer Should Know About Memory, Red Hat, Inc.(2007) PDF
Distributed Memory Programming Models
Shared Memory Programming Models
- OpenMP, OpenMP 4.5 Summary Card – C/C++, Online publication (2015) PDF
Numerical Linear Algebra
- Muhammad Hamza Khalid
- Adrian Siim Melsom
- Markus Friedemann