Summary
We have almost reached the end of the final chapter, and this is a good time to step back and reflect on everything that we have studied throughout the book.
We started by defining parallelism, and considered how it can be used to improve the performance of computational tasks. At first no code was needed, just some reflection on activities from our daily lives to make things clear and simple. Then we discussed the programming environment, and since GPU programming needs such a specialized toolkit, we presented the alternative of using Docker to keep everything tidy. This approach is doubly interesting because it can be used for other programming environments as well.
The next chapter brought us to the development of a simple program as our first milestone. We executed code that actually used the GPU! However, that first program was not really a true parallel program, so we then changed focus to look at programs that really exploit the power of GPU cores for bigger...