The world of supercomputers and large clusters is characterized by the rapid developments in available hardware and software. The speed of the supercomputers and, the amount of memory and disk space are growing exponentionally. At first sight, one could think that users of supercomputers are able to tackle larger and larger projects every year.
Alas, this is not always the case. The growth of supercomputer power is to a large extent possible by architectural changes in the hardware which necessitate special programming paradigms. At the HPCV department of SURFsara we have experience with a number of supercomputer architectures and we learned how to program them efficiently by assisting users with optimizing their programs.
Parallel computer architectures are common in the world of supercomputers. It appears that adapting or building computer programs for these parallel architectures requires special skills. Normally, users don't have the time to acquire these skills and cannot benefit from the developments in supercomputer technology. Therefore, SURFsara decided to acquire the necessary skills for parallel programming. This initiative resulted in a number of parallelization projects, most of which were funded by NCF.
In general, the following steps are taken when SURFsara parallelizes a computer program:
We have reports about our parallelization projects available.