Как понять, что выходные данные PBS «mem» и «vmem» остаются прежними, когда задача увеличивается в x раз с помощью mpirun -np x task

Функция отображения дополнительных строк до или после совпадения grep не предусмотрена в собственном egrep Solaris, для этого вам нужно будет использовать grep GNU.

В зависимости от того, какую версию Solaris вы используете, это можно найти в /usr/sfw/bin (Solaris 10 )или /usr/gnu/bin (Solaris 11 ). необходимо установить его, если его еще нет.

0
26.03.2019, 11:14
1 ответ

Я не уверен, но насколько я помню, MPI запускает только один экземпляр на узел, а затем, после некоторой инициализации, разветвляет процесс на запрошенные xкопии. Это означает, что если sim.exeне выделяет никакой дополнительной памяти после разветвления, вся память будет разделена между копиями x, а число xне влияет на использование памяти, за исключением небольших накладных расходов в операционной системе для следить за процессами.

Если вы загрузите некоторые данные или выделите часть памяти после разветвления, вы должны увидеть корреляцию между использованием памяти и x.

В сценарии многопоточного подпроцесса -все процессы xвыполняют собственную инициализацию и, следовательно, не используют столько памяти, сколько в сценарии MPI. (Они по-прежнему будут совместно использовать память для библиотек и аналогичную память -отображаемого ввода-вывода.)

Чтобы полностью понять поведение, я предлагаю вам написать небольшую программу MPI, заменяющую sim.exe, которая имеет несколько МБ статических данных, например. статический массив некоторого типа и динамически выделяемая память, и вы экспериментируете с размерами и количеством экземпляров.Я предполагаю, что статические данные совместно используются параллельными экземплярами MPI на одном и том же узле, а динамические данные (, выделенные после разветвления экземпляров MPI ), — нет.

Дополнительная литература :Как копия -на -запись в разветвление ()обрабатывает несколько разветвлений?

0
28.01.2020, 03:53

Теги

Похожие вопросы