Как использовать одновременную параллельную и последовательную версию MKL?

Последовательная и параллельная версия MKL реализованы в двух разных библиотеках. Функции библиотек имеют одинаковые имена. Таким образом, вы не можете напрямую загружать обе библиотеки и вызывать каждую функцию соответственно, не конфликтуя во время компиляции.

Я хотел бы разработать оболочку функций (например, OpenGL Extension Wrangler Library (GLEW)), которая будет иметь соответствующее расширение для каждой и той же функции, а расширенная функция будет загружать параллельную или последовательную функцию из соответствующей библиотеки.
Это хорошая идея? Можете ли вы предложить что-то еще?

Большое спасибо.

2

Решение

Я предлагаю вам всегда использовать параллельную версию MKL и контролировать #thread, используемый функциями MKL.

МКЛ обеспечивает void mkl_set_num_threads (int nt) Для изменения #thread функции MKL можно использовать в любое время.

Когда вы устанавливаете его на один, он равен серийной версии.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]