Что вы хотите случиться, если один из ваших потоков задохнется от своего ввода?Вы хотите внезапно остановить программу?Или вы хотите остановить параллельное выполнение и привести в порядок последовательную часть программы?
OpenMP на самом деле не предназначен ни для какой операции, поэтому вы будете бороться с этим, а не сборется с этим, как и большинство начинающих.Вы, конечно, могли бы, как вы предлагаете, использовать общие переменные и написать свою собственную логику, чтобы остановить программу или перейти к концу параллельной области, если один из потоков завершится неудачно.Но для этих операций нет встроенных механизмов OpenMP.
Возможно, вы захотите изучить новые task
возможности OpenMP 3.0.Используя их, вы, безусловно, можете реализовать систему, в которой задачи отправляются потокам, которые возвращают либо успех, либо неудачу, и имеют другие задачи, которые имеют дело со сбоями.
Наконец, можно утверждать, что неправильный ввод не должен вызывать программусбой, но это уже другая тема.