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

Please read this whole page to the end before running computations.

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 20.04) 48 cores
(2×24-core Xeon 2.4 GHz)
384 GB This computer also goes by the name syvert.math.ntnu.no
Memory limit 128 GB per user
syvert1.math.ntnu.no Linux (Ubuntu 20.04) 28 cores
(2×14-core Xeon 2.6 GHz)
768 GB Memory limit 256 GB per user
syvert2.math.ntnu.no Linux (Ubuntu 20.04) 48 cores
(2×24-core Xeon 2.4 GHz)
384 GB Memory limit 128 GB per user

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=4) before you start the computation. The default setting on these servers is 8.
  • For MPI programs, use the -np switch to mpirun, e.g. mpirun -np 4 ….

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 9.3
GNU C++ compiler 9.3
GNU Fortran 9.3
gcc -O3 -march=native 
g++ -O3 -march=native 
gfortran -O3 -march=native 
syvert1 GNU C compiler 9.3
GNU C++ compiler 9.3
GNU Fortran 9.3
gcc -O3 -march=native
g++ -O3 -march=native
gfortran -O3 -march=native
syvert2 GNU C compiler 9.3
GNU C++ compiler 9.3
GNU Fortran 9.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. 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:

More information




Thanks for reading this far!

If you still have questions (or other feedback), you're more than welcome to email or call us, and we'll assist as best we can. Please see our contact information.

2023-03-08, Per Kristian Hove