Louhi User's Guide, the 2nd Edition > Program development > Porting codes
Tehdyt toimenpiteet

Porting codes

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