Postgraduate DiplomaData, AI, Simulation & Analytics Applications open

Diploma in Parallelization with CUDA/OpenMP and Profiling

Online postgraduate diploma of 800 hours in parallelisation with CUDA/OpenMP and profiling: 8 modules covering parallel architectures, OpenMP programming, CUDA fundamentals, advanced GPU optimisation, profiling and performance analysis, hybrid MPI+X programming, and applications in simulation and AI, with an assigned technical tutor.

Duration6–8 months
ModeOnline
LanguageEnglish
Start datesSet by the faculty
AwardSEIUM Institute diploma
Virtual lab · try it before you enrol

Take the controls.

Run a real engineering trade-off from this field. Move the sliders, watch the model react in real time and beat the challenge.

SIM · LIVE ●
Learning outcomes

What you will be able to do

01

Analyse potential performance with the Amdahl and roofline models.

02

Parallelise shared-memory codes with OpenMP.

03

Program GPU compute kernels with CUDA.

04

Optimise memory access and occupancy on the GPU.

05

Use profiling tools to locate bottlenecks.

06

Combine MPI with OpenMP and CUDA in hybrid applications.

07

Assess scalability, efficiency and numerical reproducibility.

Profile

Who it's for

  • HPC engineers.
  • CUDA developers.
  • Performance engineers.
  • Scientific software engineers.
  • GPU computing engineers.
  • Numerical simulation researchers who need faster codes.
  • Engineering or science graduates aiming to enter scientific research.
Standards & tools

What you'll work with

  • OpenMP API 5.2 (shared-memory parallel programming)
  • MPI 4.0 (Message Passing Interface)
  • ISO/IEC 14882:2020 (C++20) (C++ programming language)
  • IEEE 754-2019 (floating-point arithmetic)
  • OpenACC 3.3 (directive-based accelerator programming)
  • SYCL 2020 (heterogeneous C++ programming)
  • ISO/IEC 9899:2018 (C17) (C programming language)
  • NVIDIA CUDA Toolkit
  • NVIDIA Nsight Systems
  • NVIDIA Nsight Compute
  • Intel VTune Profiler
  • Score-P
Syllabus

8 modules

  1. 1.1Amdahl’s law and Gustafson’s law
  2. 1.2Memory hierarchy and caches
  3. 1.3Multi-core and NUMA architectures
  4. 1.4NVIDIA GPU architecture
  5. 1.5SIMT, warps and multiprocessors
  6. 1.6Bandwidth versus compute
  7. 1.7The roofline performance model
  8. 1.8Taxonomy of parallelism
  9. 1.9IEEE 754 floating-point representation
  10. 1.10Workshop: roofline model of a compute kernel
  1. 2.1The parallel and for directives
  2. 2.2Variable scoping and data races
  3. 2.3Static, dynamic and guided scheduling
  4. 2.4Reductions and atomic operations
  5. 2.5Tasks and dependencies
  6. 2.6Vectorisation with simd
  7. 2.7Thread affinity and NUMA
  8. 2.8GPU offloading with target
  9. 2.9What is new in OpenMP 5.2
  10. 2.10Lab: parallelising a Jacobi solver
  1. 3.1The CUDA programming model
  2. 3.2Kernels, blocks and grids
  3. 3.3Device memory management
  4. 3.4Unified memory and prefetching
  5. 3.5Shared memory and banks
  6. 3.6Coalesced access to global memory
  7. 3.7Synchronisation and atomic operations
  8. 3.8Streams and concurrency
  9. 3.9Error handling
  10. 3.10Lab: matrix multiplication with shared memory
  1. 4.1Occupancy and register usage
  2. 4.2Warp divergence
  3. 4.3Warp primitives and shuffle
  4. 4.4Tensor Cores and mixed precision
  5. 4.5The cuBLAS, cuFFT and Thrust libraries
  6. 4.6Launches with CUDA Graphs
  7. 4.7Multi-GPU communication with NCCL
  8. 4.8Comparison with HIP and SYCL
  9. 4.9Portability with Kokkos
  10. 4.10Practical exercise: optimising a 3D stencil
  1. 5.1Performance analysis methodology
  2. 5.2Hardware counters and PAPI
  3. 5.3Intel VTune and perf
  4. 5.4NVIDIA Nsight Systems
  5. 5.5NVIDIA Nsight Compute
  6. 5.6Bottleneck analysis
  7. 5.7Tracing with Score-P and Vampir
  8. 5.8Designing reproducible benchmarks
  9. 5.9Performance regressions
  10. 5.10Lab: profiling an application with Nsight
  1. 6.1The distributed memory model with MPI
  2. 6.2Point-to-point and collective communications
  3. 6.3Domain decomposition
  4. 6.4MPI with OpenMP
  5. 6.5Direct communication with CUDA-aware MPI
  6. 6.6Overlapping computation and communication
  7. 6.7Strong and weak scaling of the solver
  8. 6.8Load balancing
  9. 6.9Parallel I/O with HDF5
  10. 6.10Practical exercise: diffusion solver with MPI and CUDA
  1. 7.1Parallelising finite elements
  2. 7.2Particle methods on GPU
  3. 7.3Fluid dynamics with Lattice Boltzmann
  4. 7.4Sparse linear algebra
  5. 7.5Training networks on multiple GPUs
  6. 7.6Optimised inference with TensorRT
  7. 7.7Numerical precision and reproducibility
  8. 7.8Energy efficiency of computation
  9. 7.9Software engineering best practice
  10. 7.10Case study: accelerating a molecular dynamics code
  1. 8.1Selection of the starting code
  2. 8.2Profiling the sequential version
  3. 8.3Parallelisation strategy
  4. 8.4Implementation with OpenMP
  5. 8.5Porting kernels to CUDA
  6. 8.6Profiling-guided optimisation
  7. 8.7Multi-GPU scalability study
  8. 8.8Efficiency and cost analysis
  9. 8.9Report and presentation
  10. 8.10Final project: final review with the tutor
Methodology, software & labs

How you'll learn

100% online training on the SEIUM campus, with downloadable material, recorded classes and an assigned technical tutor. There are no fixed timetables: you progress at your own pace within the intake, so it fits around your job.

Each module combines theory, guided reading of the original standard and applied exercises. The working software is NVIDIA CUDA Toolkit, NVIDIA Nsight Systems, NVIDIA Nsight Compute, Intel VTune Profiler and Score-P, in free, academic or evaluation versions. Testing is studied on real procedures: profiling and optimisation of simulation codes on GPU, scalability studies on clusters and parallelisation of iterative solvers. Assessment is continuous by module, plus the final capstone project.

Standards covered: OpenMP API 5.2, MPI 4.0, ISO/IEC 14882:2020 (C++20), IEEE 754-2019, OpenACC 3.3, SYCL 2020, ISO/IEC 9899:2018 (C17).

Assigned technical tutor:every module ends with a deliverable that your tutor marks individually.
Standards-based learning:guided reading of OpenMP API 5.2, MPI 4.0 and ISO/IEC 14882:2020 (C++20) applied to real cases, not as a theoretical annex.
Industry software:NVIDIA CUDA Toolkit, NVIDIA Nsight Systems, NVIDIA Nsight Compute, Intel VTune Profiler and Score-P, in free, academic or evaluation versions.
Final project:a parallelisation project that takes a sequential code through profiling, OpenMP implementation, CUDA porting, profiling-guided optimisation and a multi-GPU scalability study, reviewed by your tutor.
Flexible format:100% online, no fixed timetables, compatible with full-time work.
Capstone project

Build it end to end

Your final project follows the real engineering workflow, step by step, reviewed by your tutor.

Baseline profiling
Select the starting code and profile the sequential version.
OpenMP implementation
Define the parallelisation strategy and implement it with OpenMP.
CUDA porting
Port the critical kernels to CUDA and optimise them guided by profiling.
Scalability study
Carry out a multi-GPU scalability study and analyse efficiency and cost.
Final project
Present the results and final report.
Career opportunities

Where this takes you

HPC engineerCUDA developerPerformance engineerScientific software engineerGPU computing engineerNumerical simulation researcher
Admissions & scholarships

Requirements

  • Prior technical training or professional experience in the sector. No university degree is required.
  • An internet connection and a computer capable of running the programme software.
  • English sufficient to read technical standards.

Ready to start?

Send your application today. Our admissions team replies within 72 hours with your study plan and funding options.

FAQ

Frequently asked questions

The programme totals 800 hours over 6–8 months. You set your own pace within each intake, and your tutor helps you plan the workload around your job.

You work with NVIDIA CUDA Toolkit, NVIDIA Nsight Systems, NVIDIA Nsight Compute, Intel VTune Profiler and Score-P, using free, academic or evaluation versions. Your tutor indicates the free alternative wherever one exists.

A SEIUM Institute diploma, awarded on passing the continuous assessment and the final project. It is SEIUM's own qualification, not an official state degree; its recognition depends on the programme completed and the regulations of each country.

Yes. Modules passed are recognised in a higher programme in the same area (postgraduate diploma or master's). Ask about the recognition policy when you enrol.

Prior technical training or professional experience in the sector (no university degree required), a computer able to run the programme software and English sufficient to read technical standards.

Start dates are set by SEIUM's faculty for each intake. Our admissions team will confirm the next available date when you apply.

Diploma in Parallelization with CUDA/OpenMP and ProfilingEnrol
Scroll to Top
SEIUM – Institute of Advanced Engineering
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.