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 tompirun
, e.g.mpirun -np 4 …
. - For MATLAB, please see http://www.mathworks.se/help/matlab/ref/maxnumcompthreads.html
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.