У меня есть программа, использующая как MPI, так и OpenMP.
Мастер порождает несколько рабов. Каждое ведомое устройство является многопоточным с OpenMP, и один поток предназначен для обмена данными (MPI_THREAD_FUNNELED).
Когда коммуникационный поток получает сообщение от мастера, указывающее, что процесс должен быть остановлен, я не хочу ждать завершения всех потоков внутри параллельной области.
Итак, пока я вызываю функцию exit() внутри параллельной области, но мне интересно, является ли это плохой практикой и есть ли более элегантный способ выхода из процесса внутри параллельной области?