Courses in the methods and tools used to programme parallel computers and in programming multicore and graphics processors, are rapidly filled, even though none of them are obligatory components of a degree programme. Jakob Bertlin, studying media technology, Linus Sjöström, information technology, and Oscar Holm, computer science, are all deeply engaged in the course in parallel programming, and are convinced they made a good choice.
“Scalable systems and parallelisation are becoming increasingly important, and here we are gaining practical experience in how to program several cores and threads. We practise how to break down problems into parts in order to be able to parallelise the solution. Another aspect is how to manage communication between processes and threads. We don’t just focus on how to solve the problem: we try to solve it in such a way that makes for efficient parallelisation. This is the sort of course that I can enjoy working on extra, at home in the evenings over a coffee and bun,” says Oscar Holm.
A vital skill
All three agree that parallel programming of processor cores is a vital skill for the future.“Optimising individual processors cannot progress much further. Even if an individual process can be speeded up slightly, it will still be necessary to join several processors in order to gain further speed. This is vital knowledge for those who want to lead the field,” says Jakob Bertlin.
The course includes several exercises in which students work with the supercomputer Triolith.
“Those taking the course at the moment are working on Triolith, but we will move to Tetralith in the autumn,” says Christoph Kessler, professor of computer science and course supervisor.
Supercomputer
Tetralith, the most powerful supercomputer in the Nordic region, will be built during the summer at the National Supercomputer Centre at Linköping University. Tetralith consists of 1,892 servers each with 32 cores, making a total of 60,544 processors. Each server has local memory, and the challenge lies not only in distributing a large calculation across the optimal number of cores, but also in ensuring that the connections between the servers and their memory, through an internal broadband connection, functions as efficiently as possible. Special programming languages are used for parallel computers, together with dedicated libraries of software, and it is necessary to find the optimal subroutines in these.
Some of the servers in Triolith, and some – it is hoped – in Tetralith, are also equipped with powerful multicore graphics processors, known as GPUs. These are used, for example, to speed up image analysis and visualisation, for simulations, in machine learning and artificial intelligence, and for games programming. These also have dedicated programming languages. This course is given in the autumn, and is even more popular than the parallel computing course.
“Last autumn we set up a waiting list once the 60 places were filled, but in the end we managed to squeeze in everyone who wanted to take the course,” Christoph Kessler informs us.
Popular for exchange students
And of course, Jacob Bertlin, Linus Sjöström and Oscar Holm have all registered for the GPU course. It is namely not just research and the gaming industry that require highly skilled programmers.
“All of the major car manufacturers have graphics cards in their cars and the major processor manufacturers have developed special GPUs for cars,” Jakob Bertlin says.
The two courses are completely independent of each other.
“The students can take one or both, and they can take them in either order. The courses are given in English, and are popular choices for our exchange students who are only here for one term. It’s convenient for them that one is given in the spring and the other in the autumn,” says Christoph Kessler.
Linus Sjöström is looking forward to the course this autumn.
“It has been slightly tougher than I imagined it would be, and there’s more to learn than I imagined. This means that it will be really interesting to take the next course,” he says.
Translation: George Farrants
Courses: TDDC78 Programming of parallel computers - methods and tools and TDDD56 Multocore and GPU programming.