Часто задаваемые вопросы по Blue Gene/P

Когда на комплексе проводятся запланированные профилактические работы?

Каждый второй и пятый вторник месяца с 20:00 вторника до 20:00 среды на вычислительном комплексе могут проводиться запланированные профилактические работы.

В этот период система может быть либо полностью недоступна, либо задания не будут ставиться в очередь.

NB: Задания, которые к моменту начала профилактики не успели досчитаться, могут быть принудительно завершены. Пожалуйста, имейте это в виду при постановке задачи на счет.

Как подключиться к системе? Как копировать файлы?

Если username — ваше имя пользователя, то в операционных системах типа Linux для подключения к комплексу воспользуйтесь командой

$> ssh username@bluegene.hpc.cs.msu.ru

Чтобы переписать на систему файл local_file.tgz, находящийся в текущей директории, выполните команду

$> scp local_file.tgz username@bluegene.hpc.cs.msu.ru:~/

Чтобы скопировать на локальный компьютер файл remote_file.tgz, находящийся в корне вашей домашней директории на комплексе, выполните команду

$> scp username@bluegene.hpc.cs.msu.ru:remote_file.tgz .

Если вы работаете в операционных системах семейства Windows, то воспользуйтесь программой PuTTY для работы с комплексом в интерактивном режиме и программой WinSCP — для копирования файлов.

Более подробные инструкции изложены в разделе сайта, посвященному работе с удаленными системами с использованием SSH.

Как запустить задачу? Отменить задание? Посмотреть список задач?

Для начала нужно подготовить командный файл, который описывает задание. Если задание описано в файле test.jcf, то, чтобы отправить ее в очередь, нужно выполнить команду

$> llsubmit test.jcf

Для просмотра состояния очереди на системе Blue Gene/P служит команда

$> llq -b

Идентификатор задачи, который выводится в поле Id выдачи этой команды, можно использовать, для того, чтобы снять задание из очереди:

$> llcancel <jobid>

Более подробные инструкции изложены в разделе сайта, посвященному запуску задач.

При запуске задания я получаю очень странные сообщения о неправильных параметрах

Если в файле сообщений об ошибках вы видите строки вида

<Oct 15 19:21:36.296950> FE_MPI (ERROR): Incorrect value on the '-mode' command line option: 'DUAL
'

Try /bgsys/drivers/ppcfloor/bin/mpirun -help for more details

то, скорее всего, причина состоит в том, что ваш командный файл был подготовлен с использованием Windows-редактора, и признаком окончания строки в нем служит пара символов OD OA вместо стандартного для Unix-систем 0A. Воспользуйтесь утилитой dos2unix для преобразования файла к Unix-формату:

$> dos2unix run.jcf

Как передать программе аргументы командной строки?

Для передачи свой программе аргументов через интерфейс командной строки вам необходимо воспользоваться ключом -args команды mpirun:

/bgsys/drivers/ppcfloor/bin/mpirun -exe /gpfs/data/username/program -args "arg0 arg1 argN"

Если вы попытаетесь передать аргументы, опустив ключ -args, то получите сообщения об ошибках. В err-файле будет текст вида

<Oct 20 19:20:42.831577> FE_MPI (ERROR): Executable (128) is already specified with '-exe /gpfs/data/username/program'

Try /bgsys/drivers/ppcfloor/bin/mpirun -help for more details

А содержимое out-файла будет примерно таким:

Usage:
         /bgsys/drivers/ppcfloor/bin/mpirun [options]
         or
         /bgsys/drivers/ppcfloor/bin/mpirun [options] binary [arg1 arg2 ... argn]

Подробнее об использовании программы mpirun вы можете прочитать в соответствующем разделе.

Компилятор mpicxx выдает ошибки на макроопределения SEEK_SET, SEEK_CUR и SEEK_END

При компиляции MPI-программы, написанной на C++, в некоторых случаях вы можете получить сообщения следующего вида:

540-0859 (S) #error directive: "SEEK_SET is #defined but must not be for the C++ binding of MPI".

Эта проблема хорошо известна и задокументирована, как разработчиками MPICH2, так и пользователями систем Blue Gene. Наиболее распространенное решение — добавить при компиляции ключ -DMPICH_IGNORE_CXX_SEEK.

Какие размерности трехмерных решеток возможны?

Так как на системе Blue Gene/P, установленной на факультете ВМК МГУ, минимальный раздел состоит из 128 вычислительных узлов, то доступны следующие размерности трехмерных решеток:

  • 128 — 4 x 4 x 8
  • 256 — 8 x 4 x 8
  • 512 — 8 x 8 x 8
  • 1024 — 8 x 8 x 16 (если разделы по 512 процессоров размещаются в одной стойке)
  • 1024 — 8 x 16 x 8 (если разделы по 512 процессоров размещаются в соседних стойках)
  • 2048 — 8 x 16 x 16

В разделе, посвященном размещению MPI-процессов по процессорам, доступна дополнительная информация.

Какой режим исполнения процессов по умолчанию используется на Blue Gene/P?

Режимом исполнения по умолчанию на системе Blue Gene/P является SMP-режим. Но мы рекомендуем с помощью ключа -mode команды mpirun каждый раз явным образом указывать режим исполнения.

NB: В 1-м издании книги «IBM System Blue Gene Solution: Blue Gene/P Application Development» в разделе 4.6, «Specifying a mode», неправильно указан режим исполнения по умолчанию, что противоречит как разделу 4.1 «Symmetrical Multiprocessing Node Mode», той же книги, так и ее 2-му изданию.

На этапе компоновки линковщик сообщает о неизвестном символе _xlf_create_threadlocal

Как правило, это сообщение выдается, если к программе подключается библиотека ESSL.

При использовании компилятора mpixlf90, на этапе компоновке примените его потокобезопасную версию mpixlf90_r.

Если же связывается C-программа (C++-программа), то вместо mpixlc вызовите mpixlc_r (mpixlcxx_r) и подключите следующие библиотеки:

  • /opt/ibmcmp/xlf/bg/11.1/lib/libxlf90_r.a
  • если программа не использует нити, то
    • /opt/ibmcmp/xlsmp/bg/1.7/lib/libxlomp_ser.a
  • если же программа многонитевая, то
    • /opt/ibmcmp/xlsmp/bg/1.7/lib/libxlsmp.a
  • /opt/ibmcmp/xlf/bg/11.1/lib/libxlfmath.a
либо используйте для компоновки команду mpixlf90_r.

Программа аварийно завершается с ошибкой 1587-120

Если вы запускаете программу, использующую OpenMP, в VN- или DUAL-режиме, то в командном файле необходимо явным образом указать число нитей:

  • mpirun ... -env OMP_NUM_THREADS=1 ... -mode VN ... — в VN-режиме,
  • mpirun ... -env OMP_NUM_THREADS=2 ... -mode DUAL ... — в DUAL-режиме;

в противном случае система пытается создать четыре нити, и программа аварийно завершается:

1587-120 SMP runtime library error. Memory allocation failed when creating thread number 2.

Задание не ставится в очередь, выдается сообщение Unable to connect to a schedd machine

Если при неудачной попытке постановки задачи в очередь, вы получаете сообщение следующего вида:

username@fen1:/gpfs/data/username> llsubmit run.jcf
llsubmit: 2512-115 Unable to connect to a schedd machine.
llsubmit: 2512-116 Unable to submit a job to the schedd machine.
llsubmit: 2512-051 This job has not been submitted to LoadLeveler. 

то это говорит о том, что на комплексе проводятся системные работы, и планировщик LoadLeveler временно недоступен. Попробуйте повторить вашу попытку позднее. Также следите за объявлениями о проведении плановых работ на главной странице (эти объявления доступны только для авторизованных на сайте пользователей).

Задание аварийно завершается с сообщениями типа Assertion `coords[0] == new_coords[0]' failed

Задание аварийно завершается с сообщениями вида

a.out: /bglhome/usr6/bgbuild/V1R2M0_200_2008-080513P/ppc/bgp/comm/lib/mpi/mpich2/src/mpid/dcmfd/src/misc/mpix.c:143: MPIX_Cart_comm_create: Assertion `coords[0] == new_coords[0]' failed.
a.out: /bglhome/usr6/bgbuild/V1R2M0_200_2008-080513P/ppc/bgp/comm/lib/mpi/mpich2/src/mpid/dcmfd/src/misc/mpix.c:143: MPIX_Cart_comm_create: Assertion `coords[1] == new_coords[1]' failed.
a.out: /bglhome/usr6/bgbuild/V1R2M0_200_2008-080513P/ppc/bgp/comm/lib/mpi/mpich2/src/mpid/dcmfd/src/misc/mpix.c:143: MPIX_Cart_comm_create: Assertion `coords[2] == new_coords[2]' failed.

в тех случаях, когда функция MPIX_Cart_comm_create() вызывается в программе, для которой указан режим отображения MPI-процессов, отличный от используемого по умолчанию XYZT-порядка.

Если вам необходимо применять отображение, отличное от установленного по умолчанию, то при создании декартового коммуникатора вместо MPIX_Cart_comm_create() воспользуйтесь функцией MPI_Cart_create() из стандарта MPI (см. тж. реализацию функции MPIX_Cart_comm_create(): ссылка (а), ссылка (б); и wiki-страницы проекта DCMF).

При постановке задачи в очередь в stderr-файле печатается сообщение Load failed on xxx.xxx.xxx.xxx: Error changing to initial current working directory: No such file or directory

Наиболее вероятная причина этой ошибки состоит в том, что ваш исполняемый файл и командный файл планировщика (jcf-скрипт) находятся в каталоге /home/username (username — это имя вашей учетной записи). Попробуйте повторить запуск из /gpfs/data/username, предварительно переписав в эту папку откомпилированную программу, ее входные файлы (если таковые имеются) и jcf-скрипт. Подробности смотрите в разделе, посвященном файловой системе.

При подключении к комплексу я получаю сообщения типа Network error: connection timed out

Если вы раньше успешно подключались к системе и уверены, что настройки вашей сетевой инфраструктуры не изменились, то наиболее вероятная причина невозможности подключения состоит в проведении на вычислительном комплексе профилактических работ. Объявления о них появляются на главной странице этого сайта (они скрыты для анонимных посетителей, поэтому вам будет необходимо авторизоваться для получения к ним доступа).

Если вам не удалось выяснить причину ошибки подключения самостоятельно, пожалуйста, обратитесь в службу поддержки.

При работе с большими файлами программа выдает ошибки типа unable to locate file

Если при операциях ввода-вывода с большими файлами вы получаете сообщения об ошибках вида unable to locate file, то попробуйте перекомпилировать исходный код с ключами -D_LARGEFILE64_SOURCE, -D_FILE_OFFSET_BITS=64.

Вероятно, в программе используются вызовы fcntl(), stat(), open(), creat(), … из fcntl.h, которые, как на вычислительных узлах, так и на фронтэнде Blue Gene/P, используют 32-битные переменные и для файлов, размер которых больше 2 ГБ, выдают ошибки.

Возникают трудности при смене пароля с помощью WinSCP

Было замечено, что при попытке смены пароля при работе в программе WinSCP, это не всегда удается сделать успешно. Поэтому, если вы используете операционные системы семейства Windows, мы настоятельно рекомендуем изменять пароль в программе PuTTY.

Мы выражаем благодарность пользователям системы, присылавшим свои вопросы, за возможность создания этого раздела.