Мне нужно, перед тем как запустить несколько рабочих процессов, как показано ниже, проверить, доступно ли это число, чтобы приведенный ниже код не зависал, если запрошенные слоты недоступны.
int numworkers = settings.Parallelism + 1; //omp_get_num_procs();
MPI_Comm_spawn("./processes/montecarlo", MPI_ARGV_NULL, numworkers,
MPI_INFO_NULL,
0, MPI_COMM_SELF, &workercomm, MPI_ERRCODES_IGNORE);
Как проверить доступные слоты для MPI?
Это происходит в контексте службы, принимающей несколько запросов:
допустим: общее количество доступных слотов: 13
REQ1: порождение 5 процессов
Req2: породить еще 5 процессов
Req3: попытается создать 5 процессов, но потерпит крах, потому что доступно только 3. как проверить что доступно только 3?
или иным образом, как обработать сбой, вызванный отсутствием ресурсов. этот сбой убивает службу.