Useful libraries

Useful libraries

Many scientific codes use the same techniques from linear algebra (for instance matrix multiplication, inversion or decomposition) or calculus (for instance differential equation solvers) to solve different problems. Over the years many of these algorithms have been implemented and optimised. To avoid reinventing the wheel and introducing unnecessary code (and bugs) it is highly recommended to use library functions whenever possible.

Below we point to some useful libraries for scientific computing.

Links

Multi-threading (OpenMP)

Multi-threading (OpenMP)

In this module we look at how we can leverage the parallelism in shared memory systems using multi-threading in the popular OpenMP paradigm.

Below we point out some useful resources to get you started with OpenMP.

Tutorials

Videos

Introduction to C/C++

Introduction to C/C++

The C programming language and its extended successor C++ are widely used in both science and industry. They are low level level languages allowing for a lot of control over your application that yet provide several mechanisms of abstraction allowing you to write maintainable code.

Below we point out some useful resources to get you started with C and C++.

Books

Interactive

Tutorials

Advanced Level Content

Introduction to level 2: advanced

The DiRAC advanced level 2 training is the second stage in our advanced training program. At this stage you will learn coding techniques and design strategies to leverage the different layers of parallelism in our HPC clusters. Furthermore, we point out some useful libraries that can help you build your projects without reinventing the wheel.

Course Contents