Tips for porting codes to Cray Node Linux (CNL)
General
In this section we give some basic information to aid in porting codes to run on Compute Node Linux (CNL) compute nodes.
Missing Linux features
The CNL environment is based on SuSe Linux version 9, and mostly all codes should run on CNL which run on Linux unchanged. Most notable exception is that Cray does not officially support usage of dynamic libraries: although dynamic linking does work on the CNL nodes, many of the Linux system dynamic libraries are missing from the CNL environment.
Additionally CNL does not support functions getgrgid(), getgrnam(), getpwnam() and getpwuid().
Timers
The CPU_TIME() fortran 90-function is available for timing as well as the MPI_WTIME(). gettimeofday() may also be used. Note that the dclock()-function frequently used on Catamount compute nodes is not available on CNL.
CNL is a 64-bit system
The CNL system libraries come only as 64-bit versions. All 32-bit codes must be ported to use 64-bit pointers. The sizes of various C-types are explicitely
| char | 1 |
| short |
2 |
| int |
4 |
| long |
8 |
| long long |
8 |
| float |
4 |
| double |
8 |
| void * |
8 |