~~NOTOC~~ ====== Computations ====== These are the guidelines for running computations on the department computer system. This page contains: * A list of the computers available for computations * A description of how you must start the computations * What you should be aware of when storing large amounts of data ===== Where to run ===== If you have access to a fast stand-alone PC in your office, we encourage running your computations on this computer. In addition, you can access the following computers with SSH: ^ Host name ^ Operating system ^ CPUs ^ Memory ^ Available compilers ^ | **syvert** | Linux (Ubuntu 7.10) | 8 Intel CPUs \\ (2×Quad-core Xeon 3.0 GHz) | 16 GB | GNU Fortran/C/C++ | | **schwarz** | FreeBSD 6.2-RELEASE | 2 Intel CPUs \\ (2×Xeon 3.06 GHz) | 4 GB | GNU Fortran/C/C++ | | **lie** | Solaris 9 | 12 UltraSPARC CPUs \\ (6×UltraSPARC IV 1.2 GHz) | 24 GB | Sun Studio 10 Fortran/C/C++ \\ and GNU Fortran/C/C++ | ===== How to start the computations ===== All computations running on syvert, schwarz and lie must 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:** lie:~$ beregning matlab lie:~$ beregning ./a.out lie:~$ beregning matlab -nojvm mysim.m lie:~$ 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. ===== Compiling your code ===== To make your computations run as fast as possible: * 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. * On lie, compile using Sun Studio instead of the GNU compilers, if possible. Sun Studio may give a speedup in the range of 5-10 times faster code, compared to the GNU compilers. The following compilers are available: ^ Host ^ Compiler ^ Command ^ | **syvert** | GNU C compiler 4.1 \\ GNU C compiler 4.2 \\ GNU C++ compiler 4.1 \\ GNU C++ compiler 4.2 \\ GNU Fortran 4.2 | ''gcc -O2'' \\ ''gcc-4.2 -O3 -march=native'' \\ ''g++ -O2'' \\ ''g++-4.2 -O3 -march=native'' \\ ''gfortran -O3 -march=native'' | | **schwarz** | GNU C compiler 3.4 \\ GNU C compiler 4.2 \\ GNU C++ compiler 3.4 \\ GNU C++ compiler 4.2 \\ GNU Fortran 3.4 | ''gcc -O2'' \\ ''gcc42 -O3 -march=native'' \\ ''g++ -O2'' \\ ''g++42 -O3 -march=native'' \\ ''f77 -O2'' | | **lie** | Sun Studio 10 C \\ Sun Studio 10 C++ \\ Sun Studio 10 Fortran \\ GNU C compiler 3.4 \\ GNU C++ compiler 3.4 \\ GNU Fortran 3.4 | ''cc -fast'' \\ ''CC -fast'' \\ ''f77 -fast'', ''f90 -fast'', ''f95 -fast'' \\ ''gcc -O2'' \\ ''g++ -O2'' \\ ''g77 -O2'' | ===== How to store your data ===== * **Data sets and computation results should be stored in your scratch directory ''/global/work/''** (replace '''' with your login name). This directory is accessible from all our Unix computers. It is also accessible from Windows as ''\\mamba.math.ntnu.no\work\''. Some hosts also have a scratch directory named ''/work'' that can be used for this purpose. While ''/work'' is not shared (not accessible from Windows or from other Unix hosts), it is noticeably faster than ''/global/work'', so for disk-intensive processes, ''/work'' is preferred. * **Beware** that these directories are not backed up, but on the other hand, there's more space and no restrictions on usage (as long as the space you occupy is related to your computations). * **Please do not** store large data sets and results in your home directory. Files in your home directory are backed up by a central backup system to prevent data loss. Large datasets or easily reproducable result files from computations put an unneccessarily large load on the servers and backup systems, not to mention financial cost on the department as backup is quite expensive. * **However:** If the computation produces results you are going to publish, or data you for other reasons can't risk to lose, you may of course save the data to your home directory. In this case, move the data to your home directory when the computation is finished. Computations should never use your home directory as working directory - please use ''/work'' or ''/global/work'' for that.