I came to the conclusion that I have no problems. The differences in the results are related to the order of calculations, and not to the state of the FPU in different threads (we do not change the accuracy or rounding mode). As for masking FPU exceptions that differ in workflows, this is not a concern, because if a workflow performs an operation that will lead to an exception, this result (currently NaN or Inf, etc.) will ultimately βhangβ from the main thread and the exception will be thrown.
In addition, an exception must be detected in the same OpenMP stream that selected it. This means that I want the main thread to be able to rule out exceptions altogether.
user123456
source share