# Which Linux OS for computer science and numerical analysis

I am switching from OSX to Linux, which I am familiar with but have no greater experience. There are several different alternatives: archlinux, gnome, ubuntu etc. Which would you recommend for a PhD student in numerical analysis? I mainly use Julia, Fortran, C++, Python and occasionally Matlab. Thus it should be easy to get the associated compilers up and running, as installing libraries for numerical tool boxes.

Furthermore I become more familiar with the Linux environment, that being said I want an OS that doesn't require to much of me as a user.

EDIT: I am switching from OSX since I got tired of getting open source codes to compile on my Mac. Most codes and packages in my field are intended for Linux anyway.

• You should note that gnome is not a linux distribution like archlinux & ubuntu, but a window manager. That is to say there are multiple distributions (including ubuntu by default) which use use GNOME to handle displaying windows, while making different choices about what the windows look like. This is a bit like the different between High Sierra and Carbon on MacOSX. Sep 18, 2018 at 18:34
• It really doesn't matter much (and even less so with the advent of docker), but if you're doing numerical analysis for PDEs, there's an official build of FEniCS (only) for Ubuntu. So on (any derivative) of that, you'd have a slightly easier time installing it. Sep 18, 2018 at 18:39
• Is there a particular motivation to switch from OSX? Sep 18, 2018 at 20:20

There are lots of available Linux distributions and several widely used window managers, and most of them would be perfectly adequate for your needs. It is important to make sure that the distribution and window manager that you pick will work with the software packages that matter to you. It's also important to understand how the distribution you pick is supported and the supported lifetime of that particular distribution.

You want to be able to run MATLAB, so check the Mathworks list of supported Linux distributions at:

https://www.mathworks.com/support/sysreq.html?sec=linux

You'll also want to understand the long-term plans for your Linux distribution and required upgrades that you'll have to do in the future. You don't want to have to do a lot of work to upgrade to a new distribution, so consider using one of the LTS (Long Term Support) versions of Ubuntu. Ubuntu 16.04 LTS will be supported by Canonical into the year 2021, and Ubuntu 18.04 LTS will be supported into the year 2023. Not having to do a major upgrade to your Linux distribution before then is a big advantage.

I use Debian and OpenSuse Tumbleweed on our Linux desktops. Tubleweed is a rolling distribution, so there is no concept of OS version. You get very latest softwares but could be bit unstable. If your requirements are complex, then it can still be difficult to manage all the software installations using your OS package managers. My strategy is like this.

• Install compilers from OS package manager
• Install all scientific software (including mpi) using Spack https://spack.io
• For Python, use Anaconda

Using Spack has tremendously eased up the pain of installation of a ton of packages and their dependencies for me.

By the way, the above works for Mac OSX also, and my laptop runs OSX.

• Oh, you have to be careful, especially with MPI. If you want to use mpi4py with your C code using MPI, they both have be compiled against the exact same version of MPI. Otherwise you will get strange dynamic linker errors and random segfaults. That's why I think, that yoy should install your whole toolchain from the same source. Sep 24, 2018 at 11:43

I use Ubuntu 18.04 at work and Manjaro Arch Linux on my laptop. I use MATLAB, C++, and Julia for my work. MATLAB works fine on both operating systems, though you may have to play with the drivers on Ubuntu in order to get good-looking plots. Naturally, C++ and Julia work great on both OSes. MATLAB also runs fine, though if you intend to use the Coder or MEX compiler, be sure to set up the MEX compiler properly. Here's a short guide I wrote to troubleshooting that.

As you said you want to use

1. Fortran, C++, Python (already in Linux)
2. Matlab (can be installed easily).
3. Julia you may need to install explicitly.

Further, you may want to use some scientific library, such as of GNU. For writing reports you may want Latex.

Therefore, I suggest to use Scientific Fedora it comes preloaded with several scientific packages e.g. Ipython, Pandas, GNU scientific library, latex, etc.

Further, there are different flavors of distributions, aiming for different research communities, e.g., CAE Linux for Computer aided engineering and Bio Linux for biology. You should search for with your discipline name if any specific distribution exists to cater your requirements.

In other distros, like Ubuntu, you have to install such software by yourself. But Ubuntu has a pretty large community, so you will get better support.

Note: Specialized packages for PDE (e.g. Clawpack, PETSc, DEAL, etc.) can be installed later.