OpenMPI / High-Performance Linpack Вопрос для новичков
У меня небольшой кластер из 4 узлов, каждый с 4 ядрами. Я могу с радостью запустить HP Linpack на одном узле, но мне сложно заставить его работать на нескольких узлах.
Я скомпилировал HPL-2.3 из исходников с помощью OpenMPI и OpenBLAS. Кажется, все работает хорошо с тестами на одном узле.
Мой файл с узлами:
192.168.0.1 slots=4
192.168.0.2 slots=4
192.168.0.3 slots=4
192.168.0.4 slots=4
Если я сбегу mpirun -np 16 -hostfile nodes uptime
Получаю следующее:
19:10:49 up 8:46, 1 user, load average: 0.05, 0.53, 0.34
19:10:49 up 8:46, 1 user, load average: 0.05, 0.53, 0.34
19:10:49 up 8:46, 1 user, load average: 0.05, 0.53, 0.34
19:10:49 up 9 min, 0 users, load average: 0.08, 0.06, 0.03
19:10:49 up 9 min, 0 users, load average: 0.08, 0.06, 0.03
19:10:49 up 9 min, 0 users, load average: 0.08, 0.06, 0.03
19:10:49 up 8:46, 1 user, load average: 0.05, 0.53, 0.34
19:10:49 up 37 min, 0 users, load average: 0.08, 0.02, 0.01
19:10:49 up 37 min, 0 users, load average: 0.08, 0.02, 0.01
19:10:49 up 37 min, 0 users, load average: 0.08, 0.02, 0.01
19:10:49 up 20 min, 0 users, load average: 0.00, 0.02, 0.00
19:10:49 up 9 min, 0 users, load average: 0.08, 0.06, 0.03
19:10:49 up 20 min, 0 users, load average: 0.00, 0.02, 0.00
19:10:49 up 20 min, 0 users, load average: 0.00, 0.02, 0.00
19:10:49 up 37 min, 0 users, load average: 0.08, 0.02, 0.01
19:10:49 up 20 min, 0 users, load average: 0.00, 0.02, 0.00
которые предполагают, что OpenMPI работает и распространяет uptime
до 4-х процессоров, 16 ядер.
Однако когда я бегу mpirun -np 16 -hostfile nodes xhpl
Получаю следующее:
mpirun was unable to find the specified executable file, and therefore
did not launch the job. This error was first reported for process
rank 8; it may have occurred for other processes as well.
NOTE: A common cause for this error is misspelling a mpirun command
line parameter option (remember that mpirun interprets the first
unrecognized command line token as the executable).
Node: 192.168.0.3
Executable: /home/ucapjbj/phas0077/projects/hpl-2.3/bin/arch/xhpl
Это подсказывает мне, что xhpl
не может быть найден на узле 192.168.0.3
, что кажется разумным, поскольку присутствует только на 192.168.0.1
, который является моим узлом разработки. Но концептуально у меня создалось впечатление, что я могу разработать на одном узле, а затем заставить OpenMPI распространить исполняемый файл на другие узлы для выполнения без предварительного копирования исполняемого файла на другие узлы. Неужели я это неправильно понял?
Любое руководство будет очень признательно.
С уважением
Джон
1 ответ
Похоже, мне нужно скопировать исполняемый файл xhpl в одно и то же место на каждом узле.
Я посмотрел на mpirun --preload-binary
вариант, который, казалось бы, именно то, что я хочу, но я не могу заставить его работать. Любой совет был бы очень кстати.
С наилучшими пожеланиями
Джон