-
Data: 2012-03-03 16:12:22
Temat: Re: OpenMP - jest szybciej czy wolniej?
Od: "slawek" <s...@h...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
wiadomości grup dyskusyjnych:jite8a$dvn$1...@i...gazeta.pl...
> OpenMP pozwala robić przede wszystkim coarse-grained, fine-grained może
> i też, ale twoje pętla jest "mikro". Zrób zewnętrzną/wewnętrzną.
Nie taka mikro ;)
Nie da się - ta pętla to jedyny etap na którym coś sensownie (tj.
bezmyślnie) można zrównoleglić.
Było rzędu 1000
Dałem docelowe N, czyli 10 000, i nagle... surprise, surprise
(a nic innego nie zmieniałem!)
>gfortran -fopenmp -Ofast program.f95
>a test.in
CPU_TIME time = 35.6875 seconds
ETIME CPU time = 35.2500 seconds 98.64 %
ETIME SYS time = 0.4844 seconds 1.36 %
ETIME TOT time = 35.7344 seconds
>gfortran -Ofast program.f95
>a test.in
CPU_TIME time = 37.0000 seconds
ETIME CPU time = 36.9375 seconds 99.79 %
ETIME SYS time = 0.0781 seconds 0.21 %
ETIME TOT time = 37.0156 seconds
Czyli wersja z OpenMP zrobiła się szybsza (na dwóch rdzeniach) niż
jednowątkowa. I to nawet bez schedule (z też).
> No i będzie 2x szybszy. OpenMP nie zwalnia od myślenia. Chcesz coś
> prostszego: Thrust. Ma backend openMP, ma backend CUDA, używa
> się tak prosto, jak stl::transform, z Fortrana chyba też się da.
> Jak przy pomocy Thrust uda ci się spieprzyć, chylę czoła ;)
Wszystko da się spieprzyć.
> GPU działa inaczej. Taka pętla będzie "memory-bound", za mało liczenia.
> W przypadku GPU mówi się o przepustowości, i generalnie przepustowość
> obliczeniowa karty jest rzędu 8-10 x większa niż przepustowość
Nie o to chodzi - po prostu dziwiłem się kiedyś, po co Intel dał GPU do CPU
zamiast zrobić coś innego. Tłumaczył się wtedy (inż. z Intela), że mieli
pusto na krzemie, bo obwód wafelka jest ograniczony prądowo przez I/O, więc
przy malejącej szerokości ścieżki zostały puste placki, więc wsadzili tam
coś, czyli GPU. Bardziej jednak prawdopodobne, że te GPU tam już teraz
jest... aby kiedyś używać podobnie jak to robi CUDA.
> Nie wiem, co Intel (i AMD) zrobią naprawdę mieszając CPU i GPU. Widziałem
> te architektury, ale nie powiem, żebym znał ich właściwości. Nie liczyłbym
> też na to, że 1000 rdzeni: rdzenie GPU są inne i nie są niezależne;
> no i rdzenie Intela to nie rdzenie Nvidii czy ATI. Ale mix może być fajny.
Też tak myślę.
> Ta, schedulera. W przypadku dwóch wątków na dwucorowym procku scheduler
> nie ma nic do gadania.
Niezupełnie - oddychają Windowsy, piszę newsy, coś się dzieje...
> OpenMP jest fajny, RTFM. Trolujesz, czy serio narzekasz?
Na serio narzekam. Powinno być tak prosto jak się da. A jest... no dobrze,
jeszcze tylko dlaczego OpenMP nie chce działać pod GCC 4.7 ?! Tzn. coś mu
się nie podoba "stara" glibc. Ok. Ale czy ja mam chęć walczyć z glibc - na
każdym systemie na jaki przypadkiem trafię?! Nie mam!
> Bo spieprzyłeś. Gcc wektoryzuje pętle. Jak masz task z 1 iteracją
> może mieć problem (też bym liczył na to, że sobie poradzi, ale
> nie wszystkie optymalizacje zawsze działają). Zresztą:
Przełom jest przy około 50 tysiącach iteracji.
Nagle wszystko robi się płynne, obciążenie CPU leci do 100%, oba wątki się
dogadują - normalnie cud mniemany.
Następne wpisy z tego wątku
- 03.03.12 16:29 Edek Pienkowski
- 03.03.12 21:29
- 03.03.12 21:33 M.M.
- 03.03.12 23:13 slawek
- 04.03.12 05:46 M.M.
- 04.03.12 10:29 Roman W
- 04.03.12 11:13
- 05.03.12 11:02 Roman W
- 05.03.12 15:14 M.M.
- 05.03.12 18:33 slawek
- 05.03.12 18:42 fir kenobi
- 05.03.12 18:48 slawek
- 05.03.12 18:58 slawek
- 06.03.12 02:27 Michoo
- 06.03.12 06:04 Karol Y
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz