CM30225 Parallel Computing
- Monday 10.15: please read from slides21 p.42 to the end of slides22.
- Friday 12.15: from slides23 p.65 to the end of slides24
- Monday 10.15: please read slides25
- Parallel sorting and searching
- Reduction, prefix scan
- GPUs: many threads, slow memory
- Kernels, grids, blocks, warps
- Memory architecture: local, shared, global, other
- Examples, memory coalescence
Lectures for this Unit have finished. There will be revision
classes in the usual time slots
Using Balena over the Christmas break
Balena will be running unattended over much of the
Christmas break. Do not plan on leaving your coursework to the last minute!
Please remember Balena is a shared resource and be respectful in your use of it!
Parallel computing has been around for longer than you think, so there are many
books -- just pick one! None I have found matches this course terribly well,
but each contains useful bits and pieces. At least for the generalities.
"Highly Parallel Programming",
Almasi & Gottlieb, Benjamin Cummings
"Computer Architecture and Parallel Processing",
Hwang & Briggs, McGraw-Hill
"Concurrent Programming Principles and Practice",
Andrews, Benjamin Cummings
"Introduction to Parallel Computing",
Kumar, Grama, Gupta, Karypis, Benjamin Cummings
Burns & Davies, Addison-Wesley
"Designing and Building Parallel Programs",
Foster, Addison Wesley
Lynch, Morgan Kaufmann
"Concurrency: State Models & Java Programs"
Magee and Kramer, Wiley
"Introduction to High-Performance Scientific Computing"
"Principles of Concurrent and Distributed Programming",
Ben-Ari, Prentice Hall
"Communicating Sequential Processes",
Hoare, Prentice Hall
Wikipedia seems fairly accurate in this area, but you should always treat
Wikipedia as a useful source of pointers and follow up the references
Notes on using Balena.
Also see HPC at Bath
Your jobs will go into the "cm30225" queue: this is shared by
all of you on this unit
If you submit a large number of jobs your priority will decrease to give other
people's jobs a chance
Expect the queue to get longer as you approach the hand-in date!
Programming in C
Some quick notes to remind
you about programming in C
Coursework accounts for 25% of the unit total. It
consists of two assignments:
If you have problems accessing Balena, please
and give as much detail as you can about the problem. Note this is purely for
problems with the machine: any other problems are your own!
There are plenty of resources on available on the Web to help you with both
assignments, including standards, manuals and tutorials.
This coursework is designed to investigate parallelism, not mathematics. So
if you are focusing on the mathematical aspects, you are just
making extra work for yourself
At the end of the semester (75%).
Online Past Papers
Not much on
All the Slides
All the slides in one big PDF.
The exam will only be set on material covered in lectures and the
reading weeks, and your lecture
notes will tell you what was covered in lectures.
These will be released after the relevant lecture: there is no
substitute to having the material go through your brain at least once!
Note that these slides are reminders to me as to what topics I should cover:
you are expected to read around the subject and refer to your lecture
notes. Don't treat the slides as the entirety of your study.
The file numbers don't correspond to anything in particular in terms of
lectures or subject covered.
I may have skipped some material in lectures: why not improve your general
education and read the extra too! The exam will only be set on material covered
in the reading weeks and in lectures, and your lecture notes will tell you what was covered in lectures.