-
Data: 2012-03-06 12:52:55
Temat: Re: OpenMP - pewnie, że szybciej (aka "zagadka" rozwiązana)
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 06.03.2012 10:43, slawek wrote:
>
> Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości grup
> dyskusyjnych:jj3soa$jrf$...@m...internetia.pl...
>> ./a.out 1,97s user 0,00s system 389% cpu 0,507 total
>>
>> I mamy wykonanie 40% szybciej na 2 rdzeniach z HT (z narzutem na
>> zrównoleglenie 180%).
>>
>> Magia polega na dwóch zmianach:
>
> Przypadkiem zauważyłeś, że MSVC to Windows - natomiast ty uruchamiasz i
> testujesz pod Linuksem?
>
> Połowa (większa) problemu to narzuty "wewnętrzne" - widać po twoim
> teście jedynie to, że Linuks sprawdza się lepiej (czyli jak trzeba).
>
>> 1. NIE wykonywaniu TEGO SAMEGO kodu wielokrotnie (naprawdę się
>
> do for paralell jest równoważne parze linijek parallel/do for --
> przynajmniej to wyczytałem w opisie OpenMP
Bo tam jest to zapisane.
A czy wyczytałeś przy okazji coś o koszcie synchronizacji? Każdy blok
parallel to 2 punkty synchronizacji.
0x08048576 <+134>: call 0x8048474 <GOMP_parallel_start@plt>
0x0804857b <+139>: mov DWORD PTR [esp],esi
0x0804857e <+142>: call 0x8048750 <main._omp_fn.0>
0x08048583 <+147>: call 0x8048484 <GOMP_parallel_end@plt>
Lepiej je wykonać 200 razy niż 20000 razy. A jeszcze lepiej wykonać je
tylko raz.
Btw: na podstawie tu przedstawionych wniosków, stosując 2 drobne
modyfikacje w kodzie slawka uzyskałem czas:
$ time ./a.out
CPU time = 1.040000
just for fun 91.999668
./a.out 1,00s user 0,04s system 393% cpu 0,264 total
>
>> 2. sensowny przydział bloków obliczeń
>
> Sensowny dla MS Windows oznacza w tym przypadku kawałki liczące się
> około milisekund. A w programie są mikrosekundowe.
Zazwyczaj im mniej synchronizacji tym szybciej kod działa - to chyba
oczywiste. Przydaje się też, żeby nie właziły sobie nawzajem w cache.
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 06.03.12 17:43 slawek
- 06.03.12 18:08
- 06.03.12 18:10
- 06.03.12 20:50 Roman W
- 07.03.12 15:19 slawek
- 08.03.12 17:58 Karol Y
- 10.03.12 11:25 slawek
- 11.03.12 07:54 Karol Y
- 12.03.12 17:44
- 13.03.12 07:36
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=