/ / OpenMP optimalizácia s c - c, optimalizácia, správa pamäte, openmp

Optimalizácia OpenMP s c - c, optimalizácia, správa pamäte, openmp

Ja som mal optimalizovať nižšie uvedený kód, aby sabežať aspoň 16x rýchlejšie pomocou openMP a blokovania pamäte. Doteraz môžem len pomyslieť na to, že s mojimi jednoduchými tvrdeniami sa prepadnem o slučky. To robí to beží 3 krát rýchlejšie. Akékoľvek nápady na priblíženie k 16?

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];

odpovede:

0 pre odpoveď č. 1

Keď deklarujete index vnútornej slučky vo vonkajšom rozsahu, musíte použiť privátnu klauzulu, aby ste každému vláknu poskytli vlastnú kópiu. Kolaps môže rušiť simd vektorizáciu.