Degree: BSc Computing (Games Development)
Project title: Mixed Mode Parallelism – Programmatic Elicitation of Optimal Combinations of Parallelism Method(s)
Parallelisation is an incredibly useful but underused programming method; it can bring massive performance gains to software. Modern computers often have more than a single a core, and generally have a GPU (Graphics Processing Unit), which are almost always underutilised in modern software. This means the graphics card and many cores of the CPU (Central Processing Unit) sit idly by while a single core on the CPU runs the whole application, leaving a large amount of the potential performance of the computer wasted. This paper takes a look into what can be done about this waste, and how developers can efficiently parallelise their code and make the most of the processing capabilities of the computer. The findings show that when utilised correctly, parallelisation can improve the performance of particular algorithms ten-fold. The results also go against parallelisation, showing that when not utilised under the right circumstances, it can have an equal effect in the opposite direction, decreasing the performance of the algorithm significantly. A balance needs to be found between the right parallel methods, which algorithms should utilise them, and at what point do they become useful and increase performance.
Click/tap on image to view as PDF