# Computations

## These guidelines explain:

• Where to run your computations (which computers)
• How to start the computations
• What to be aware of when storing large amounts of data

## Where

You can either use your office PC, one of our computing servers (accessible with SSH), or the Idun cluster:

The rest of this article only applies to the department's computing servers, not the Idun cluster.

Host name Operating system CPU cores Memory Notes
syvert0.math.ntnu.no Linux (Ubuntu 18.04) 24 cores
(4×6-core Xeon 2.67 GHz)
256 GB
syvert1.math.ntnu.no Linux (Ubuntu 18.04) 28 cores
(2×14-core Xeon 2.6 GHz)
768 GB
syvert2.math.ntnu.no Linux (Ubuntu 18.04) 32 cores
(4x8-core Xeon 2.7 GHz)
256 GB This computer also goes by the name syvert.math.ntnu.no

Please check how well your computation scales to multiple CPU cores. If you don't get any speedup past e.g. 4 cores, please limit your computation to using 4 cores.

How do I know how well my computation scales?

• Try using 1, 2, 4, 8, … cores and see if this results in a reduction in run time.
• Ideally, the wall clock time should decrease inversely proportional to the number of cores used. If the speed of your computation converges, there is little or no gain in using more cores.

How do I limit the number of cores I use?

• For OpenMP programs, set the environment variable OMP_NUM_THREADS to the number of cores you want to use (e.g. export OMP_NUM_THREADS=8) before you start the computation.
• For MPI programs, use the -np switch to mpirun, e.g. mpirun -np 8 ….

We especially recommend using the computing servers if your program can benefit from multiple cores (Parallel Toolbox in MATLAB, OpenMP in C/C++, etc.)

## How

All computations should be started by adding the special command compute before the command that starts the computation. (You may also use the special command beregning, these are equivalent. The example below uses beregning).

Examples:

syvert0:~$beregning matlab syvert0:~$ beregning ./a.out
syvert0:~$beregning matlab -nojvm mysim.m syvert0:~$ beregning ./ns -N 8 -T 10 init.dat > sim.out

and so on. The compute/beregning command makes sure that your computation is run with the right priority, so that you don't have to worry about using more than your share of CPU.

If you're running your own C/C++/Fortran code (as opposed to code written in R or Matlab), it is highly recommended to turn on optimizing in the compiler. This will increase the speed of your program. The following compilers are available:

Host Compiler Command
syvert0 GNU C compiler 7.3
GNU C++ compiler 7.3
GNU Fortran 7.3
gcc -O3 -march=native
g++ -O3 -march=native
gfortran -O3 -march=native
syvert1 GNU C compiler 7.3
GNU C++ compiler 7.3
GNU Fortran 7.3
gcc -O3 -march=native
g++ -O3 -march=native
gfortran -O3 -march=native
syvert2 GNU C compiler 7.3
GNU C++ compiler 7.3
GNU Fortran 7.3
gcc -O3 -march=native
g++ -O3 -march=native
gfortran -O3 -march=native

## How to store your data

As long as your files and data sets fit in your home directory, you may store them there. If your program is disk-intensive, please use the local /work scratch directory. (This directory exists on most of our computing servers but not on desktop computers, In which case you may use /var/tmp instead.) These filesystems are local to the computer, and usually faster than your home directory, which is a networked filesystem.

The /work filesystems can be accessed from your personal computer:

From Mac/Linux:

• smb://syvert0.math.ntnu.no/work
• smb://syvert1.math.ntnu.no/work
• smb://syvert2.math.ntnu.no/work

From Windows: