Skip to content

About

The 2026 iteration of Data Parallel Programming

Resources

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Syllabus and Material for Data Parallel Programming (DPP)

Welcome to the course website for DPP! All material and general information will be provided here. Announcements, assignment handin, and the discussion forum remains on Absalon. While this website is a Git repository, you are not required or expected to use Git to interact with it, but feel free to do so if convenient for you.

Course Structure

DPP is structured around five weeks with lectures and lab sessions on Monday and Wednesday, followed by a final project to be presented orally at the exam. Throughout the course, you will hand in four weekly assignments. The assignments count for 40% of the grade, while the exam counts for 60%.

The teachers are Cosmin Oancea and Troels Henriksen.

All lectures and lab sessions will be delivered in English. The assignments and projects will be posted in English, and while you can chose to hand in solutions in either English or Danish, English is preferred.

There is no mandated textbook for the course - you will be assigned reading material from papers and such.

We have also begun work on some DPP course notes PDF, although they are currently quite embryonic, and it is not certain we will have time to add much content this year. Please let us know if there is anything in particular you would like to see.

Course schedule

TBA once KU fights off all those villanous hackers.

Lectures:

  • Monday 13:00 - 15:00 in Aud 03 at August Krogh (AKB)
  • Wednesday 10:00 - 12:00 in 1-0-37 at the DIKU Pavillon

Labs:

  • Monday 15:00 - 17:00 in Aud 02 at August Krogh (AKB).
  • Wednesday 13:00 - 15:00 in 1-0-37 at the DIKU Pavillon.

This course schedule is tentative and will be updated as we go along. The lab sessions are aimed at providing help for the weeklies and group project. Do not assume you can solve them without showing up to the lab sessions.

Lecture plan

Week 1

Monday
Wednesday

Week 2

Monday
Wednesday

Week 3

Monday
Wednesday

Week 4

Monday
Wednesday
  • Theme: Part II: Automatic Differentiation

  • Facultative Material:

    • same as above

Week 5

Monday
Wednesday

Weekly assignments

The weekly assignments are mandatory, must be solved individually, and make up 40% of your final grade. Submission is on Absalon.

The assignment text and handouts will be linked in the schedule above.

Feedback and resubmission

Your TA, Lilje, will be grading and providing feedback on your weekly assignments. You receive feedback within a week of the handin deadline, and one resubmission attempt is granted for each weekly assignment, which may be used to solve tasks missing in the original hand-in and/or to improve on the existing hand-in (but note that feedback may be sparse for resubmissions).

As a rule of thumb, the resubmission deadline is two weeks from the original handin deadline, but it is negotiable.

Extensions may be granted on weekly assignment (re-)submission deadlines -- please ask Lilje if for any reason, personal or otherwise, you need an extension (no need to involve Cosmin or Troels unless you wish to complain about Liljes decision).

Group project and exam

The final project, along with the exam as a whole, contributes 60% of your grade, and is done in groups of 1-3 people (although working alone is strongly discouraged). We have a tenative list of project suggestions, but you are free to suggest your own (but please talk with us first). Since the time to work on the project is rather limited, and there is no possibility of resubmission, you should ask for help early and often if you are having trouble making progress. The project should be handed in via Absalon in TBA. Send an email if you have trouble meeting this deadline.

Most of the projects are about writing some parallel program, along with a report describing the main points and challenges of the problem. The exam format is a group presentation followed by individual questions about both your project and anything else in the curriculum. Each group prepares a common presentation with slides, and each member of the group presents non-overlapping parts of the presentation for about 10 min (or less). Then each member of the group will answer individual questions for about 10 min.

Practical information

TA

Your TA is Lilje Henrich Due (due@di.ku.dk). Lilje will be grading your weekly assignments.

Hendrix GPU cluster

You may find it useful to make use of DIKUs GPU machines in your work. We recommend using the so-called Hendrix cluster. If you are enrolled in the course, you should already have access. Otherwise contact Troels at athas@sigkill.dk. For how to access Hendrix, follow the first link in this paragraph.

Consider using sshfs to mount the remote file system on your local machine:

$ mkdir remote
$ sshfs hendrix:/ remote

Also see here for more hints.

Using Hendrix

The DIKU systems have a conventional HPC modules setup, meaning you can make additional software available with the module command. You may need to do this inside SLURM jobs.

Loading CUDA
$ module load cuda
Loading Futhark
$ module load futhark
Loading ISPC
$ module load ispc

(Although there is no reason to use Hendrix for ISPC - it will run fine on your machine.)

Other resources

You are not expected to read/watch the following unless otherwise noted, but they contain useful and interesting background information.

Acknowledgements

NVIDIA has donated GPUs used for teaching DPP for several years.

Thanks to Filippa Biil for the hedgehogs above, and Lilje Due for the ones below.

sCj7afu

About

The 2026 iteration of Data Parallel Programming

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages