"Она написана на C/C++ давно не мной" -> врядли она многопоточна или использует opencl / cuda.
"Если запускать их по отдельности, но все хорошо" -> А ваша чудо программа создаёт временные файлы? Как вариант попробывать запускать разные копии программы в разных директориях.
"Я его собрал в Debug моде и при таком использывании проблем нет" -> в коде UB, прогнать анализатор и
valgrind
"Как найти причину недетерминизма программы?" как обычно логированием этапов вычисления. Можно даже не самих данных а значения их hash значения (для уменльшения логов) и пологам искать место возникновения отклонений. После локализации смотреть причины.