1 Operating System
Lucas FRÉROT edited this page 2024-10-25 09:54:17 +00:00

The choice of operating system is essential to a good experience developing, running and analyzing scientific simulations. This is the reason why using Linux is, in my opinion, mandatory for this work, because :

  • most simulation codes, libraries and tools are developed with Linux in mind,
  • super computers (clusters) all run Linux,
  • it's open, easy to install, easy to customize

A PhD thesis is 3 years long. In order to not lose time repairing broken dependencies during those 3 years, choosing a Long Term Support (LTS) Linux distribution is highly recommended. These distributions typically issue security patches, sometimes bug fixes, but otherwise leave packages at a specific version. This means that if one can compile / install some code at the start of a PhD, one can expect this code to work flawlessly 3 years later. This is in contrast to rolling-release distributions, which generally update a package as soon as a new version becomes available from the developer.

Among the LTS distributions, I would advise using one of these two :

  • Debian is a widely used distribution, with tons of documentations, a huge choice of well-maintained packages, backed by a non-profit organization
  • Linux Mint, based on Ubuntu LTS (which is itself based on Debian) or on Debian directly (for the LMDE version), it places focus on everything working out of the box. Mint is preferred if you lack experience with Linux, or have an NVidia GPU

Ubuntu LTS is also a valid choice, although in my experience the packages made by Canonical for Ubuntu are not as good as Debian's.

Pick the latest LTS version, install and stick to it for 3 years

Command line

The command line interface (CLI) or "terminal" is a way to textually interact with a computer. While it may seem impractical, there are several advantages of learning and using the CLI:

  • you can only interact with remote super computers with the CLI
  • most codes, libraries and tools for scientific computing do not come with a graphical user interface (GUI), and need using through the CLI
  • the CLI on Linux is based on the designs of Unix devised in the late 60's. Not much has changed since then, and is unlikely to change soon. You'll therefore be able to use the same commands in 40 years
  • it is very easy to automate repetitive tasks in the CLI, often making it more efficient than a GUI
  • CLI is (mostly) independent of your choice of Linux distribution (main difference is the package manager)

A short tutorial on the very basics of the command line can be found here.