Общее

Профиль

Новости

Суперкомпьютеры и параллельная обработка данных, 2023: Замечания по результатам сдачи зачета 14 декабря

Добавил(а) Vladimir Bakhtin 11 месяца назад

По результатам сдачи зачета, который прошел сегодня, хотелось бы отметить следующее:
1. Мы неоднократно обсуждали на лекциях, что при разработке MPI-программ необходимо распределять данные между процессами.
Ни в одном из процессов массив не должен находиться целиком.
В каждом процессе должна находиться лишь часть массива(какое-то подмножество строк/столбцов или блоков массива).
Размер этой части должен определяться с учетом количества MPI-процессов, используемых для выполнения программы.

MPI-программы, в которых массивы не распределены между процессами не принимаются.

2. В рамках курса мы рассматривали множество различных алгоритмов: умножение матриц, умножение матрицы на вектор, а также другие алгоритмы вычислительной математики и линейной алгебры. Ни в одном из рассмотренных нами алгоритмов у нас не было master-процесса, который бы раздавал работу и данные, а затем собирал полученные результаты. Все процессы в наших алгоритмах были равноправными, а алгоритмы - децентрализованными.

MPI-программы, в которых используется модель master-slave не принимаются.

3. Срок сдачи первой части задания прошел еще 2 недели назад. Но до сих пор в трекере есть множество заданий, по которым не было ни одного сообщения/загрузки программ. Все такие задания будут закрыты автоматически вечером 16 декабря. Студентам, чьи задачи будут закрыты, необходимо готовиться к устному зачету по курсу.

Суперкомпьютеры и параллельная обработка данных, 2023: Запуск MPI-программ на Poluse

Добавил(а) Vladimir Bakhtin 11 месяца назад

Для компиляции и запуска MPI-программ на Poluse можно использовать следующий способ.
При входе на машину необходимо выполнить команду:
source /polusfs/setenv/setup.SMPI
После этого нам станут доступны команды для компиляции (mpicc) и запуска программ (mpirun).

Скомпилировать программу можно при помощи команды:
mpicc <имя_программы>.c -o <имя_программы>

Далее необходимо подготовить файл myrun вида:
#LSBATCH: User input
#BSUB -n 20
#BSUB -W 00:15
#BSUB -o run.%J.out
#BSUB -e run.%J.err
#BSUB -R "span[hosts=1]"
source /polusfs/setenv/setup.SMPI
mpirun -np 1 ./<имя_программы>
mpirun -np 80 --oversubscribe ./<имя_программы>
mpirun -np 100 --oversubscribe ./<имя_программы>
mpirun -np 120 --oversubscribe ./<имя_программы>
mpirun -np 160 --oversubscribe ./<имя_программы>

Далее выполняем команду bsub<myrun
При помощи этой команды/файла мы запрашиваем у системы очередей один узел кластера,
когда этот узел будет выделен нам системой очередей,
на нем будут выполнены запуски нашей программы на нужном числе процессов.
Опция --oversubsribe в данном случае нужна, т.к. мы хотим запустить большее число процессов, чем доступно физических ядер на узле.
С уважением,
Владимир Бахтин.

(11-20/48)

Экспортировать в Atom