Я должен оптимизировать приведенный ниже код, чтобы он выполнялся как можно быстрее в 16 раз с использованием openMP и блокировки памяти. До сих пор я могу думать только о сворачивании циклов for с моим простым заявлением ниже. Это заставляет его работать в 3 раза быстрее. Любые идеи о приближении к 16?Оптимизация OpenMP с c
int i,j;
#pragma omp parallel for collapse(2) //my inserted code
for (i = 0; i < MSIZE; i++)
for (j = 0; j < MSIZE; j++)
d[i][j] = c[j][i];
Сколько ядер у вас есть? если вы хотите, чтобы какой-то код работал быстрее на 16 раз. Вам понадобится не менее 17 ядер;) (кроме оптимизации алгоритма) –
@MichalWalenciak У меня есть 10 ядер – user6382770
, тогда ~ 9 раз быстрее будет ваш максимум. Насколько велика 'MSIZE'? Для небольших значений управление потоками будет слишком много. –