Последовательная и параллельная версия MKL реализованы в двух разных библиотеках. Функции библиотек имеют одинаковые имена. Таким образом, вы не можете напрямую загружать обе библиотеки и вызывать каждую функцию соответственно, не конфликтуя во время компиляции.
Я хотел бы разработать оболочку функций (например, OpenGL Extension Wrangler Library (GLEW)), которая будет иметь соответствующее расширение для каждой и той же функции, а расширенная функция будет загружать параллельную или последовательную функцию из соответствующей библиотеки.
Это хорошая идея? Можете ли вы предложить что-то еще?
Большое спасибо.
Я предлагаю вам всегда использовать параллельную версию MKL и контролировать #thread, используемый функциями MKL.
МКЛ обеспечивает void mkl_set_num_threads (int nt) Для изменения #thread функции MKL можно использовать в любое время.
Когда вы устанавливаете его на один, он равен серийной версии.
Других решений пока нет …