Это нормально делать - ничто не должно падать или зависать в результате этого.
Однако ваш «так, что он использует минимальный процессор» немного беспокоит. У вас больше процессов MPI, чем у вас есть аппаратные потоки для их выполнения? Такой вид переподписки вообще ужасен для производительности, и его следует избегать. Наилучшая производительность часто наблюдается с одним меньшим количеством процессов на один аппаратный узел, чем количество аппаратных потоков, которые оно предлагает, чтобы позволить системным процессам работать где-то без предварительной защиты приложения.
В случае, если это может быть оправдано (на котором я только что опубликовал a paper), если у вас есть раздел вашей программы, где у вас меньше параллелизма, чем у вас есть процессы. Если вы работаете на процессорах Intel с Turbo Boost, то, когда фактически запущенные процессы простоя могут позволить ядру (ядрам) работать с рабочими процессами, чтобы работать с более высокой тактовой частотой.
Большинство реализаций MPI начинаются с каждого ранга в отдельном процессе. Каждый процесс имеет по крайней мере один поток. Поэтому использование 'this_thread' - это прекрасно, но помните, что MPI часто порождает дополнительные потоки для внутреннего использования, и вы не должны с ними общаться (что на самом деле трудно сделать с помощью интерфейса C++). –
@HristoIliev: Я бы поддержал это как ответ. – Richard