Topic outline

  • Welcome to Programming Parallel Computers

    Welcome to Programming Parallel Computers, spring 2023 edition! This is a practical hands-on course on algorithm engineering for modern parallel computers. You will learn how to design programs that make the best possible use of the computing power of multicore CPUs and GPUs.

    Watch the first video (14 min) to hear more about what you will learn in this course!


    Course material and exercises

    All course material is freely available at, and all information on our exercises and grading will be posted at



    The course grading is solely based on the number of points you get in the exercises. See for details on the exercises, grading, and deadlines. There is no exam, and no compulsory participation in any other course activities. You can solve any exercises in any order, as long as you get enough points to pass the course (note the exercise-specific opening times and deadlines). However, following the “recommended path” is probably a good idea.


    Course activities

    Each week you are expected to:

    • Watch the videos at (for each week there are 3–4 short videos).
    • Take part in the weekly lecture (see below).
    • Read the relevant parts of the course material at
    • Solve at least the weekly recommended exercises at
    • Follow our Zulip discussion forum for further information and advice and take part in the discussions there (see below).
    • Take part in the exercise sessions if you need personal one-to-one assistance (see below).




    The first lecture is on Monday, April 24, starting at 14.15, in hall AS2 (building: Maarintie 8).

    Each week, you are expected to watch the pre-recorded videos before the lecture! In the lecture we will then discuss the topic in more depth, answer any questions you might have on the videos, etc., but we will not repeat the same content as what is already there.

    The lectures are organized on campus. To make sure everyone feels comfortable to participate in the discussions, the lecture is not recorded or streamed (but we will post a summary of the discussions in Zulip for the benefit of those who cannot make it to the campus).


    Exercise sessions

    There are two exercise sessions each week, on Tuesdays at 12.15–13.45 and on Fridays at 14.15–15.45. The exercise sessions are organized on campus, in computer class rooms T7 in the Computer Science building.

    You are free to take part in 0, 1, or 2 exercise sessions each week. The exercise sessions are the only opportunity to get one-to-one assistance with your exercises.

    If you cannot take part in the exercise sessions, you can also always ask for help in our public Zulip streams.



    For all communication we will use Zulip; please join our Zulip workspace at, using Aalto login. If you have got any questions related to the course, please feel free to ask using the public stream #general in Zulip or, if all else fails and you cannot join the Zulip workspace, you can also contact the lecturer by email (


    Collaboration rules

    You are encouraged to discuss solution ideas with other students and the course staff, but all code that you submit must be written by yourself. You can use ideas that you find online, but you are not allowed to copy source code, or submit code that is e.g. generated by tools like ChatGPT or GitHub Copilot.

    There is one exception, though: copying code from our course material is fine!


    Sponsor & prizes

    The course is sponsored by Basemark, and our sponsor has also promised a prize for our top student!