Функция отображения дополнительных строк до или после совпадения grep не предусмотрена в собственном egrep Solaris, для этого вам нужно будет использовать grep GNU.
В зависимости от того, какую версию Solaris вы используете, это можно найти в /usr/sfw/bin (Solaris 10 )или /usr/gnu/bin (Solaris 11 ). необходимо установить его, если его еще нет.
Я не уверен, но насколько я помню, MPI запускает только один экземпляр на узел, а затем, после некоторой инициализации, разветвляет процесс на запрошенные x
копии. Это означает, что если sim.exe
не выделяет никакой дополнительной памяти после разветвления, вся память будет разделена между копиями x
, а число x
не влияет на использование памяти, за исключением небольших накладных расходов в операционной системе для следить за процессами.
Если вы загрузите некоторые данные или выделите часть памяти после разветвления, вы должны увидеть корреляцию между использованием памяти и x
.
В сценарии многопоточного подпроцесса -все процессы x
выполняют собственную инициализацию и, следовательно, не используют столько памяти, сколько в сценарии MPI. (Они по-прежнему будут совместно использовать память для библиотек и аналогичную память -отображаемого ввода-вывода.)
Чтобы полностью понять поведение, я предлагаю вам написать небольшую программу MPI, заменяющую sim.exe
, которая имеет несколько МБ статических данных, например. статический массив некоторого типа и динамически выделяемая память, и вы экспериментируете с размерами и количеством экземпляров.Я предполагаю, что статические данные совместно используются параллельными экземплярами MPI на одном и том же узле, а динамические данные (, выделенные после разветвления экземпляров MPI ), — нет.
Дополнительная литература :Как копия -на -запись в разветвление ()обрабатывает несколько разветвлений?