About setting up a computer for scientific computing

About setting up a computer for scientific computing#

How to setup a computer for scientific computing is a complicated subject. There are many cases, many tools and many methods. There is not one good way to do things.

Note that there are mostly three categories of software:

  1. graphical applications (like VSCode, Spyder, your browser, …),

  2. command-line applications (like interpreters/compilers, package/project managers, …) and

  3. libraries.

Installing software can be done:

  • with a specific installer or with a package/project manager,

  • as “root” (“administrator mode”) or as a simple user,

  • in the “system” or isolated (in “environments”).

There are many different package/project managers, which can for example be language specific or language agnostic.

Windows is particular since this system has historically not be designed and used for scientific computing. A solution brought by Microsoft and called Windows Subsystem for Linux (WSL) is to install another operating system (Linux) inside Windows. It is much nicer than nothing but this further complicates things since one needs to setup two imbricated systems instead of one.

So how to choose how to install software? Which choices are we going to take for this training? One needs to trust people and follow their propositions. Who can we trust? We think that we can trust:

  • Serious open-source communities

    • communities around Linux distributions, like Debian/Ubuntu/Mint (apt), Fedora (dnf), Arch (pacman), …

    • communities around languages, like Python, Java, Javascript, C, C++, Rust, Julia or Fortran to name a few,

    • communities around packaging projects, like conda-forge or HomeBrew,

    • communities around software projects, like Git, Mercurial or Jupyter, …

  • Serious companies, for example Microsoft with VSCode, Astral with UV or Prefix.dev with Pixi….

Let’s start. Just follow in the order the instructions given in the next pages!