Использование IBM X10 на кластере Jet

На вычислительном кластере Jet установлен компилятор с языка IBM X10 версии 2.3 (SVN trunk). Параметры сборки и конфигурация runtime-системы:

ant -DNO_CHECKS=true -Doptimize=true squeakyclean -Davailable.procs=8 -DX10RT_MPI=true dist

Настройка среды окружения

Для использования компилятора с языка IBM X10 необходимо настроить переменные среды окружения. Добавьте в файл ~/.bashrc строку "source /opt/etc/x10-vars.sh".

$ cat ~/.bashrc
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

source /opt/etc/mpich2-vars.sh
source /opt/etc/x10-vars.sh

Компиляция программы на языке IBM X10

Для компиляции программ на языке IBM X10 предназначена команда x10c++. Ниже приведен пример компиляции программы prog.x10: Следует обязательно указывать опцию "-x10rt mpi", которая реализует обмены между областями (Places) функциями библиотеки MPI (mpich2 1.5).

$ x10c++ -x10rt mpi -o prog ./prog.x10

Запуск X10 программ через систему очередей TORQUE

Для запуска X10 программы через систему управления ресурсами TORQUE в job-файле следует использовать утилит x10run. Указанная команда запустит на каждом выделенном вычислительном узле одну область (Place). Ниже приведен пример job-файла prog.job. На каждом из 4 узлов будет запущена одна область (Place) с 1 рабочими потоком (по умолчанию для каждо области создается 1 рабочий поток, не смотря на действительное значение ppn).

$ cat ./prog.job
#PBS -N MyX10Job
#PBS -l nodes=4:ppn=6
#PBS -j oe

cd $PBS_O_WORKDIR

x10run ./prog

Для ограничения количества используемых потоков на узле следует использовать переменную среды окружения X10_NTHREADS. В нижеследующем примере на каждом из 5 узлов будет запущена область (Place) с 4 рабочими потоками, которые будут выполнять задачи (activities).

$ cat ./prog.job
#PBS -N MyX10Job
#PBS -l nodes=5:ppn=8
#PBS -j oe

cd $PBS_O_WORKDIR

export X10_NTHREADS=4
x10run ./prog
  • В опциях ppn и X10_NTHREADS рекомендуется указаывать одинаковые значения
  • В каталоге /opt/examples/x10 размещен пример X10 программы, скрипт для её компиляции и job-файл

Последнее изменение: October 19, 2012, at 08:57 AM mkurnosov