Параллельные вычисления. Запуск задач в BATCH.

Вычислительная ферма ЛИТ состоит из 279  2-х и 4-х ядерных машин, соединенных коммуникационной средой 1Gb Ethernet. Так как 2-х и 4-х ядерные процессоры являются независимыми процессорами на одном кристалле, то фактически пользователям ОИЯИ доступны 1104 64-х битных ЦПУ.

В это число входит ферма для параллельных вычислений, состоящая из 20   28-ми ядерных машин,  соединенных дополнительно 2xInfiniband.  Пользователям для выполнения паралельных вычислений доступно 560 ядер.

Программное обеспечение:

На всех счетных машинах ЦИВК установлена

ОС Scientific Linux release 6.9 (Carbon),
компиляторы: g77/gcc/g++ – GNU Fortran 77,
C and C++ compilers version 4.4.7;
gfortran GNU Fortran 95
ifort/icc/icpc – Intel Fortran ,
C, C++ compilers version 13.1.3
на интерактивной ферме и интерактивной ферме для эспериментов NICA, MPD :
devtoolset-4 (gcc 5.1, debugger и др)

GCC (GNU Compiler Collection) – набор свободно распространяемых компиляторов для различных языков программирования (С/C++/Fortran и др.). Они используются как стандартные компиляторы для Unix-подобных операционных систем.

Intel С/C++/Fortran Compilers – компиляторы нового поколения, позволяющие обеспечить высокую производительность на процессорах Intel. Компиляторы Intel дополнены эффективными средствами разработки многопоточного кода, поддерживающими стандарт OpenMP.

Библиотека Intel Math Kernel Library (Intel MKL) предоставляет набор оптимизированных математических функций, позволяющих создавать быстродействующие приложения для процессоров Intel.

Библиотеки включают линейные алгебраические функции (LAPACK и BLAS) образования Фурье (FFT), пакет векторной математики VML.

Подробнее см. документацию на ферме ЦИВК: /opt/intel/Compiler/11.1/056/Documentation/en_US

Для разработки параллельных программ с использованием пакета MPI (Message Passing Interface) установлены библиотеки MPI для языков программирования C, C++ и Фортран. Для компиляции и сборки параллельных программ с использованием пакета MPI используются следующие команды:

mpicc – для программ, написанных на языке C;
mpiCC – для программ, написанных на C++;

mpif77 и mpif90 – для программ, написанных на Фортране;
mpiexec – запуск программы на исполнение на всех ЦПУ.

Более подробно о командах и компиляторах можно узнать, выполнив команду man.

Запуск параллельных задач

Для подготовки и счета параллельных задач под управлением MPI на ферме доступны компиляторы mpicc, mpif77, mpic++ и mpif90.

При запуске задач нужно сначала определиться, откуда их запускать. Если файлы небольшие, тогда удобней работать в пределах домашней директории, которая находится в AFS (распределенной высоко защищенной файловой системе), и там же хранить все файлы. Если есть или могут появиться большие файлы (а место в home-директории ограничено 50 Mб), или есть общие для нескольких пользователей файлы, тогда лучше хранить их, например, на scratch (что не в AFS), а для счета – копировать на счетные машины во временную директорию, адрес которой находится в переменной $TMPDIR.