Tuning system parameters
From HP-SEE Wiki
Section contributed by IICT-BAS
Achieving optimal performance on the target architecture is dependent on proper setting of system parameters that are controlled at OS level. Such configuration changes usually can be performed by the users, but they should request these changes to be performed by the administrators. They should be aware of some of the parameters that mostly affect the correct or fast execution of their codes. We will not discuss here how these properties can be set, since it is up to the system administrators to ensure that. In many cases the default limit on stacksize is very small, especially for FORTRAN applications. It can be increased by the users themselves via a command like
limit -s unlimited
before starting execution. Some of the other limits, however, are not user modifiable. Especially important is the number of open files, or file descriptors, which is also relevant for MPI jobs, since network sockets also count towards this limit. The usual default is much too small for HPC usage. The proper functioning of Infiniband interconnection also requires the maximum shared memory usage to be set to much higher value that the default one. The maximum number of processes per user may also become a limitation and could be increased. The current GEANT interconnection of HPC clusters allows for fast file transfers, but to achieve maximum performance one should increase the sizes of the TCP buffers. The issue of tuning the TCP/IP protocol implementation is well researched topic and we are not going to go into detail here. It should mostly affect the international connectiviy, while in-cluster MPI performance depends on latency and bandwidth of the special interconnect (Infiniband, proprietory, etc.).