Have you ever lost a bunch of time figuring out tons of dependencies to run your scientific computing application? Maybe you’re trying to compile a code written 40 years ago that only works with a compiler version not available in your current OS (true story). After weeks, you finally make it work. You implement a super useful functionality and your peer asks if they can give it a go. Now they better really want to give it a go since they will have to go through all the hassle you went through to install everything required. Or maybe you simply have a new computer and need to install everything again.
Well, what if I told you that after setting things up just once, you could reliably always load this environment with all required dependencies with a single command and all you would need is a single software called Docker?
I made a GitHub repository that contains a series of tutorials showing how to use Docker to easily create a software development environment focused on scientific computing. After going through all chapters, you will be able to launch an environment containing all dependencies you want, independent of your operating system’s type and version, with a single command. You will be able to use Windows and execute code that uses OpenMPI and CUDA developed on Linux without having to install anything. It seems like magic, but it is just the power of containers.