Computational Science: Parallel Programming in Scientific Computing
Learn how parallel programming accelerates numerical algorithms on modern multicore and multinode systems. The course covers sharedmemory and distributedmemory paradigms and how to achieve substantial speedups in scientific computing.
Start
Autumn 2026
Level
Master's
Language
English
Place of study
Lund
Course code
BERN09
This course provides a concise introduction to parallel programming in scientific computing for students who want to extend their computational skills to modern multicore and multi node systems. The course covers the main ideas behind sharedmemory and distributedmemory programming. It will exemplify common performance inhibitors, possible causes for non-reproducible results and reasons for program execution freezing. You also study how algorithmic structure interacts with hardware and how to analyse the performance and scalability of parallel implementations.
Course content
- Introduction to programming in C
- Concepts behind distributed and shared memory parallel computing
- Commonly used commands of the MPI and OpenMP API
- Performance assessment of parallel applications
- Debugging and profiling of parallel codes
- Efficient OpenMP and MPI parallelisation of standard algorithmic constructs such as matrix–vector products, scalar products, unbalanced summations, recursive calls, divide and conquer
- Hybrid parallelisation (shared and distributed memory) of a stencil code on a regular grid.
The course is alternative-compulsory within the Master’s programme in Computational Science and may be taken as an elective in the Master’s programme in Mathematics with a specialisation in Numerical Analysis. It is also given as a standalone course.
Teaching consists of lectures, tutorials, and computer exercises focused on writing and optimising parallel codes. A compulsory programming project culminates in a written report and a seminar presentation, which—together with submitted assignments and oral explanations—form the basis for assessment. By the end of the course, you will be able to design, modify, and assess parallel programs and apply them to realistic problems in scientific computing.
Parallel programming is essential when computational speed matters. Computational hardware currently deployed in scientific computing supports and requires parallel software to be efficient. This holds for everything ranging from multicore laptops to high performance computing clusters.
During the course you will learn how parallelism can accelerate numerical algorithms, how performance bottlenecks arise, and how to write programs that behave correctly when many processes run at once. After completing this course, you will be prepared to build, modify and extent efficient parallel algorithms, analyse their performance, and apply them in scientific computing, engineering, physics, data science, and numerical analysis. The skills gained distributedmemory programming, sharedmemory programming and performance optimisation provide a strong foundation for advanced studies in highperformance computing and for careers involving largescale computational modelling.
Entry requirements
For admission to the course English 6/B and at least 90 credits in natural science are required, including knowledge equivalent to the course NUMA01 Computational Programming with Python (7.5 credits). In addition, knowledge equivalent to one of the following courses is required: NUMA32 Numerical Methods for Differential Equations (7.5 credits), NUMN21 Advanced Course in Numerical Algorithms with Python/SciPy (7.5 credits), FYTN03 Computational Physics (7.5 credits) or FYSN33 Applied Computational Physics and Machine Learning (7.5 credits).
Selection criteria
Seats are allocated according to: ECTS (HPAV): 100 %.
Tuition fees for non-EU/EEA citizens
Citizens of countries outside:
- The European Union (EU)
- The European Economic Area (EEA) and
- Switzerland
are required to pay tuition fees. You pay an instalment of the tuition fee in advance of each
semester.
Tuition fees, payments and exemptions
Full programme/course tuition fee: SEK 23,125
First payment: SEK 23,125
Note that you may also need to pay an application fee, or provide proof of exemption.
No tuition fees for citizens of the EU, EEA and Switzerland
There are no tuition fees for citizens of the European Union (EU), the European Economic Area (EEA) and Switzerland.
A shared second home for mathematics
Matematikcentrum gathers students and researchers in mathematics, mathematical statistics, and numerical analysis and computational science. Along Sölvegatan, close to green spaces and the wider university area, you find a shared environment for everyone who uses mathematics as a common language. Research here has led to innovations and companies in areas such as optimisation, image analysis and software, with applications ranging from logistics to video analysis and mobile technology.
