Tips for porting codes to the Cray XT4/XT4 Compute Node Linux (CNL) are given in Chapter Porting codes. Part of it may be repeated here, but mostly other features of CNL which differs form normal Linux are described here.
The operating system of Louhi is called Cray Linux Environment (CLE); it has compute node and service node components. Earlier it was called UNICOS/lc. Compute nodes run the CNL operating system. Service nodes run SuSE LINUX. Login nodes are service nodes.
- CNL provides limited support of the process control functions such as popen(), fork(), and exec(); the resulting processes execute in the limited RAM disk environment on each compute node.
- The exec() function can execute the scp and ksh commands and the limited number of BusyBox commands (which are basic Linux commands). See: man busybox
- CNL supports threading OpenMP and CrayPat supports Pthreads tracing (Catamount did not support these)
-
CNL supports the cpuinfo and meminfo /proc files (catamount did not support these). These files contain information about your compute node.
-
CNL glibc does not support:
-
The getgrgid(), getgrnam(), getpwnam(), and getpwuid() functions.
-
Customer-provided functions that require a daemon.
-
-
The Cray XT series systems currently do not support dynamic loading of executable code or shared libraries. Also, the related LD_PRELOAD environment variable is not supported.
-
The I/O operations allowed in CNL applications are Fortran, C, and C++ I/O calls; Cray MPICH2, Cray SHMEM, and OpenMP I/O functions; and the underlying Linux Lustre client I/O functions. NFS-mounted directories are not supported (Catamount supported also these, because yod was able to access NFS-direcories, too, but aprun works only on Lustre-mounted direcories.)
-
CNL (and aprun) supports now both a single page size of 4 KB (small pages), which is default, and also large 2 MB pages when requested.