Я пытаюсь распараллелить мой код, используя mpiexcec, и это хорошо работает до 1049 узлов, после чего он жалуется на открытие слишком большого количества файлов. Я обнаружил, что это связано с ulimit
, который установлен на 1024 на ПК узла. Теперь он может быть увеличен до ~ 8000, но у меня есть разрешение на это только при использовании zsh
(мы не знаем почему)
Теперь мне стало интересно, знает ли кто-нибудь, как я могу запустить свой код втаким образом, что когда mpiexcec ssh-es превращается в узел pc, он запускается zsh
и затем говорит ulimit -n 8000
.
Может ли это быть как-то закодировано в машинном файле? Это командная строка, которую я запускаю mpiexec.openmpi -machinefile mfile -n 1488 nice -n 10 ./ST.x
Машинный файл выглядит как
comp70 slots=48 max_slots=48
comp69 slots=48 max_slots=48
comp68 slots=48 max_slots=48