У меня есть приведенный ниже файл с именем demo2.py. Скопировано из: параллельная запись в разные группы с помощью h5py и http://docs.h5py.org/en/stable/mpi.html.
from mpi4py import MPI
import h5py
rank = MPI.COMM_WORLD.rank
size = MPI.COMM_WORLD.size
f = h5py.File('parallel_test.hdf5', 'w', driver='mpio', comm=MPI.COMM_WORLD)
dsets = []
for i in range(size):
dsets.append(f.create_dataset('test{0}'.format(i), (1,), dtype='i'))
dsets[rank][:] = rank
f.close()
Я запускаю его, используя: mpiexec -n 2 python3 demo2.py
в командной строке. Когда я проверяю используемые ядра с помощью htop
, я ясно вижу, что используется более 2 ядер. У меня три вопроса:
- Почему и как это происходит?
- Как я могу строго ограничить количество используемых ядер?
- Как часть кода выполняется только один раз, а остальная часть распространяется? Или я неправильно понял это? Не могли бы вы объяснить поток программы, а также распределение ресурсов между процессами?
Большое спасибо, любая помощь очень ценится!
mpiexec -n 2 python3 demo2.py --bind-to hwthread
, кажется, делает то, что я хотел бы, но что именно это означает? - person PSK   schedule 28.07.2020mpirun --bind-to core ...
. обратите внимание, что поведение по умолчанию недавнего Open MPI заключается в привязке к ядру по умолчанию при выполнении двух задач MPI. Open MPI порождает как минимум 2 вспомогательных потока для каждой задачи MPI, но они не должны потреблять много ресурсов, за исключением, возможно, запуска и финализации. поэтому с точки зрения производительности 2 задачи (по одному ядру в каждой) имеют больший потенциал для повышения производительности, чем 1 задача. - person Gilles Gouaillardet   schedule 28.07.2020-n
раз? Если да, то каким образом один и тот же файлf
создается только один раз и используется во всех запусках этой программы? Не могли бы вы написать немного о потоке и совместном использовании ресурсов в этом конкретном примере, включая создание вспомогательных потоков, и ваши предыдущие два комментария в качестве ответа, чтобы я мог его принять? Некоторые ресурсы, чтобы понять это лучше, также были бы очень полезны. Спасибо! - person PSK   schedule 29.07.2020