Как заставить Fortran ждать завершения нескольких внешних процессов? - PullRequest
0 голосов
/ 05 апреля 2019

Я выполняю симуляцию Монте-Карло, где использую эти точки выборки Монте-Карло, чтобы получить потенциал.К сожалению, оценка потенциала очень медленная, и я хочу разделить процессы, например, для 12-ядерного компьютера, 1 ядро ​​выполняет процесс Монте-Карло, а затем разделить весь массив на 11 частей, чтобы оценить потенциал для этих компьютеров.указывает на внешнюю программу и соединяет их вместе.Однако одна проблема, с которой я сталкиваюсь, состоит в том, что, когда я жду окончания 11 вычислений, они могут завершаться в разное время, вызывая ошибки времени выполнения на моих машинах.

До сих пор я использовал команду sleep, чтобы моя программа дожидалась завершения задания, но мне либо пришлось дать очень много времени для сна, либо мои вычисления приводили к ошибкам во время выполнения.

разделить задание на части здесь, сделать i = 1, разделить задание nnode здесь, система вызовов enddo ('./ external_programoutput &) ... do i 1 =, объединить результаты nnode здесь, завершить с продолжением вычисления

...