Я новичок в параллельных вычислениях и ищу варианты и приемы.
Моя текущая проблема состоит в том, чтобы найти 2 32 независимых линейных уравнений типа B = AX; где размеры A [8x8], B [8x1] и X [8x1]; A является плотной матрицей.
Я использую функцию CLAPACK - zgelss для этого в последовательном порядке на процессоре Intel Core 7i, 4-ядерном, 8-поточном и компьютере Mac.
Более того, размер моей матрицы достаточно мал, чтобы использовать внутреннюю оптимизацию.
Я хочу применить параллелизм над этим циклом:
for (n = 0; n < 2^32; n++)
{...}
Я хочу спросить, какие у меня есть варианты сделать это.
Несколько человек предложили использовать OpenMP , но после прочтения об OpenMP я обнаружил, что мы не можем применять директивы OpenMP к части кода, которая предварительно скомпилирована.
Если мы сделаем это, это будет работать, но это может быть небезопасно, потому что вы не можете приватизировать временные переменные внутри скомпилированных функций.
{Пожалуйста, прокомментируйте правильно / неправильно / другое}
Поэтому я хочу спросить, как это можно сделать, если это возможно.
Некоторые трюки .... что угодно ...