2

Can oversubscribing the number of OpenMP threads in a hybrid MPI / OpenMP program lead to an incorrect execution of parallel code in C++? By incorrect I mean it does not produce output in a parallel test case as expected.

I am trying to come up with an example of a case where oversubscription, on its own, causes execution of the code to fail. The only cause I can think of and find via research is when there are so many threads used in OpenMP that they cause a stack overflow.

My motivation for the question is I am working on a large project with hybrid OpenMP / MPI where the number of failed tests seems to depend on the number of cores used. I imagine this could be due to a number of issues outside the scope of the question, but I am interested to know whether solely oversubscription could cause correctness tests to fail.

1 Answer 1

2

No. A correct well-formed parallel program on functioning hardware does not become incorrect from being oversubscribed.

There is simply no correctness assumption being violated by oversubscription. Imagine a non-pinned program - one of it's threads could be migrated by the processor to a core that is already executing another threads. Locally, this is similar to oversubscription, and it must not be incorrect.

You may experience severe performance degradation or program termination due to lack of resources. Of course an incorrect program that appeared to have worked before, can reveal its flaws when run under oversubscription. Oversubscription could possibly exhibit a pattern that reveals existing hardware issues.

Sign up to request clarification or add additional context in comments.

1 Comment

Indeed. The difficulty is in finding the incorrect or poorly-formed component(s) when they're only apparent under extreme load.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.