Mam pętlę #pragma omp parallel for
wewnątrz metody klasy. Każdy wątek odczytuje tylko kilka zmiennych lokalnych metody, kilka prywatnych danych wywołania i parametr metody. Wszystkie one są zadeklarowane w klauzuli shared
. Moje pytania:Współdzielenie OpenMP a pierwszorzędne poświadczenie wydajności
- Wydajność mądry nie powinien żadnej różnicy zadeklarować te zmienne
shared
lubfirstprivate
. Dobrze? - Czy to samo dotyczy sytuacji, gdy nie uważam, aby zmienna nie współużytkowała tej samej linii pamięci podręcznej?
- Jeśli jedną ze zmiennych współużytkowanych jest wskaźnik, a wewnątrz wątku odczytałem wartość przez nią, czy występuje problem z aliasingiem, jak w zwykłych pętlach?
Jutro spróbuję profilować mój kod. W międzyczasie dziękuję za radę!