-
Data: 2012-03-01 21:34:06
Temat: OpenMP - jest szybciej czy wolniej?
Od: "slawek" <s...@h...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Procedura solve (napisana w Fortranie), według profilera, wykonuje się 2.43
mikrosekundy jako "single thread". Jeżeli jednak uruchomić program jako
wielowątkowy (2 wątki, OpenMP), to profiler pokazuje około 1.21
mikrosekundy. Problem jednak w tym że cały program, co zmierzyłem "ręcznie"
zwykłym stoperem, a także przez CPU_TIME z wnętrza programu, wykonuje się
wtedy nie krócej - ale aż 20 razy dłużej!
Ciekawe: gprof stwierdza, że to co się zaoszczędziło na 2-gim wątku zostało
zjedzone przez _gcc_deregister_frame, ale i tak - według profilera - cały
program liczył się trochę krócej...
Co to jest? Kiepska implementacja OpenMP? Urok systemu MS Windows XP ?
(Komputer z fizycznie 2-ma rdzeniami i tyle właśnie wątków jest z OpenMP.)
A może jest tak, że jak program jest uruchomiony jako jednowątkowy, to idzie
na jednym rdzeniu i nikomu/niczemu nie pozwala sobie przerywać (prawie 100%
obciążenia rdzenia), natomiast dwuwątkowo co chwila blokuje go sam system
(obciążenie obu rdzeni jest jakieś takie połowiczne). I choć CPU-time jest -
jak widzi to profiler - 3.2 sekundy - to wall-time jest niemal
dwuminutowy?!
Ma ktoś pomysł jak to rozruszać?
Flat profile: <<< wersja 1-wątkowa >>>
time seconds seconds calls us/call us/call name
98.78 4.87 4.87 2000001 2.43 2.43 __main_MOD_solve
1.22 4.93 0.06 MAIN__
granularity: each sample hit covers 4 byte(s) for 0.20% of 4.93 seconds
Flat profile: <<< wersja 2-wątkowa >>>
time seconds seconds calls us/call us/call name
71.70 2.23 2.23 2000001 1.11 1.11 __gcc_deregister_frame
21.86 2.91 0.68 MAIN__
6.11 3.10 0.19 2000001 0.09 1.21 __main_MOD_solve
0.32 3.11 0.01 __chkstk_ms
granularity: each sample hit covers 4 byte(s) for 0.32% of 3.11 seconds
Następne wpisy z tego wątku
- 01.03.12 23:47 Roman W
- 02.03.12 00:13 Karol Y
- 02.03.12 00:16 slawek
- 02.03.12 00:24 slawek
- 02.03.12 00:28 Karol Y
- 02.03.12 00:35 Jordan Szubert
- 02.03.12 01:17 Roman W
- 02.03.12 11:53 slawek
- 02.03.12 12:03 slawek
- 02.03.12 12:12 Arkadiusz Dymek
- 02.03.12 12:12 slawek
- 02.03.12 12:16 Edek Pienkowski
- 02.03.12 12:28 slawek
- 02.03.12 12:35 slawek
- 02.03.12 12:46 Edek Pienkowski
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-13 Kraków => QA Inżynier <=
- 2024-11-13 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-13 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-11-13 Lublin => Delphi Programmer <=