-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Edek Pienkowski <e...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: OpenMP - jest szybciej czy wolniej?
Date: Sat, 3 Mar 2012 15:44:10 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 87
Message-ID: <jite8a$dvn$17@inews.gazeta.pl>
References: <4f4feb4d$0$1271$65785112@news.neostrada.pl>
<jip3ao$9u9$1@node2.news.atman.pl>
<4f501330$0$26703$65785112@news.neostrada.pl>
<jip477$asl$1@node2.news.atman.pl>
<4f50b4a4$0$26698$65785112@news.neostrada.pl>
<jiqdm3$dvn$5@inews.gazeta.pl>
<4f50bea4$0$1268$65785112@news.neostrada.pl>
<jiqfeg$dvn$6@inews.gazeta.pl>
<4f50c486$0$26685$65785112@news.neostrada.pl>
<jiqhqe$dvn$9@inews.gazeta.pl> <jiqi0e$dvn$10@inews.gazeta.pl>
<4f50ddac$0$1279$65785112@news.neostrada.pl>
<jiqqlu$dvn$13@inews.gazeta.pl>
<4f50f4d2$0$26694$65785112@news.neostrada.pl>
<jiqt59$dvn$15@inews.gazeta.pl>
<4f50fa41$0$26701$65785112@news.neostrada.pl>
<jisdma$441$1@inews.gazeta.pl>
<4f51eeb2$0$1213$65785112@news.neostrada.pl>
NNTP-Posting-Host: 87.204.176.18
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1330789450 14327 87.204.176.18 (3 Mar 2012 15:44:10 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sat, 3 Mar 2012 15:44:10 +0000 (UTC)
X-User: pieniekusenet
User-Agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 30dc37b
master)
Xref: news-archive.icm.edu.pl pl.comp.programming:195945
[ ukryj nagłówki ]Dnia Sat, 03 Mar 2012 11:13:08 +0100, slawek napisal:
> Użytkownik <f...@N...gazeta.pl> napisał w wiadomości grup
> dyskusyjnych:jisdma$441$...@i...gazeta.pl...
>> mz wiadomo a przynajmniej bezpieczniej jest zakladac ze koszt
>> owatkowienia moze byc spory, mi nie podoba sie watkowa rozrzutnosc,
>
> Właśnie w tym cały wic:
>
> 1. OpenMP "podręcznikowo" stosuje się tak:
>
> !$omp parallel do do i = 1,N
> ! ... robota do wykonania
> end do !$omp end parallel do
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ą.
>
> Mimo tej sztuczki - program nadal jest 2x _wolniejszy_ niż
> jednowątkowy
> (był nawet 35 razy wolniejszy). A powinien być 2x szybszy. Dziwne.
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 ;)
>
> 3. Myślę, że takie coś będzie szło od strony GPU - Intel "wsadził" GPU
> do CPU - więc pewnie da się - tam powinno być około 1000 rdzeni... to
> zupełnie nowy horyzont.
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ść
pamięci, do tego z pamięci trzeba odczytać i jeszcze zapisać wynik.
Fakt, że GPU mają lepszą przepustowość pamięci niż procek, ale znowu:
wszystko memory-bound musi mieć odpowiednie dostępy do pamięci, albo
będzie strasznie wolne. Zobacz Thrust, oni zrobili to dobrze, sam z takim
podejściem spieprzysz koncertowo i będzie jeszcze wolniejsze.
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.
>
>> - tak naprawde zeby zobaczyc co sie dzieje trzebeby zobaczyc i umiec
>> zrozumiec kod schedulera i okolic w kernelu - warto by to bylo po
>> prostu obejrzec (zob watek jadro jadra)
Ta, schedulera. W przypadku dwóch wątków na dwucorowym procku scheduler
nie ma nic do gadania.
>
> 4. Znowu przypomnę - OpenMP miał być sposobem na
> "łatwo-prosto-i-przyjemnie". Jak mam wgłębiać się w kod kernela - to
> trudno mówić, że jest prosto.
>
> 5. Czyli podsumowując - cały ten OpenMP jest mocno do niczego -
> wydajność SPADA - a w dodatku trzeba mocno uważać, aby zrobić działający
> program.
OpenMP jest fajny, RTFM. Trolujesz, czy serio narzekasz?
>
> 6. Punkt 5. odnosi się do "przeciętnego PC mającego 1 procesor z
> niewieloma rdzeniami". Być może gdyby tych rdzeni było więcej... ale,
> ale, na 16 też było kiepsko.
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ą:
weź Thrust. Jest zrobiony właśnie dla ludzi, którzy nie kumają co to GPU,
co to OpenMP i chcą coś szybko policzyć. Przepisanie twojej pętli to
5 minut, używa się tego bardzo prosto. Gratis będzie działało na GPU,
ale nie oczekiwałbym wielkich zysków jeżeli nie masz takiego "nowego
procka CPU/GPU, który by jeszcze wspierał CC 2.0", bo na GPU trzeba
dane dodatkowo przekopiować i przekopiować wyniki, do tego pewne latency
wykonania dochodzi (rzędu 1ms).
Edek
Następne wpisy z tego wątku
- 03.03.12 15:49 Edek Pienkowski
- 03.03.12 15:53
- 03.03.12 16:12 slawek
- 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
Najnowsze wątki z tej grupy
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi
- 2024-12-20 Opole => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-20 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-20 Rzeszów => International Freight Forwarder <=
- 2024-12-20 Katowice => Key Account Manager (ERP) <=
- 2024-12-20 Ekstradycja
- 2024-12-20 Mikroskop 3D
- 2024-12-20 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-20 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-20 Warszawa => Full Stack .Net Engineer <=
- 2024-12-20 Warszawa => Programista Full Stack .Net <=
- 2024-12-19 Kamerka sam. na tył
- 2024-12-20 Jak być bezpiecznym z Li-Ion?