У меня есть приложение C++, которое использует параллельную конструкцию openmp.OpenMP и ограничение памяти
Метод внутри цикла for использует много памяти. Он выделяет память при запуске и освобождает их в конце.
Если в системе достаточно памяти, она работает хорошо, но если памяти недостаточно, операция не работает.
Целевая система может иметь достаточную память, поэтому параллельно может выполняться только 2 потока или, возможно, 3 потока могут выполняться параллельно.
Есть ли способ настроить openmp, чтобы он знал, сколько потоков он должен использовать на основе доступной памяти?
Если OpenMP не может этого сделать, есть ли способ, которым я могу это сделать сам?