-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.inte
rnetia.pl!not-for-mail
From: Michoo <m...@v...pl>
Newsgroups: pl.comp.programming
Subject: Re: OpenMP - pewnie, że szybciej (aka "zagadka" rozwiązana)
Date: Tue, 06 Mar 2012 03:27:10 +0100
Organization: Netia S.A.
Lines: 78
Message-ID: <jj3soa$jrf$1@mx1.internetia.pl>
References: <4f4feb4d$0$1271$65785112@news.neostrada.pl><jip3ao$9u9$...@n...news.atma
n.pl><4f501330$0$26703$65785112@news.neostrada.pl><jip477$asl$...@n...new
s.atman.pl><4f50b4a4$0$26698$65785112@news.neostrada.pl>
<jiqdm3$dvn$5@inews.gazeta.pl>
<4f50bea4$0$1268$65785112@news.neostrada.pl>
<jiqgak$2sv$1@inews.gazeta.pl>
<4f50f420$0$1231$65785112@news.neostrada.pl>
<4f511b4b$0$1221$65785112@news.neostrada.pl>
NNTP-Posting-Host: 83.238.197.12
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1331000906 20335 83.238.197.12 (6 Mar 2012 02:28:26 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Tue, 6 Mar 2012 02:28:26 +0000 (UTC)
In-Reply-To: <4f511b4b$0$1221$65785112@news.neostrada.pl>
X-Tech-Contact: u...@i...pl
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:8.0) Gecko/20120216
Icedove/8.0
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.comp.programming:196000
[ ukryj nagłówki ]On 02.03.2012 20:11, slawek wrote:
[...]
> /***************************************************
****************************************************
************************
>
> !
> ! Program test-omp
> !
> ! /openmp
> !
Zacytuję ioccc:
You can hide a semi truck in 300 lines of C.
Tu jest w 88 liniach C ukryty fiat 126p z 4 przyczepami - nic dziwnego,
że jedzie tak wolno.
Wyniki z mojego komputera (core i5) i gcc-4.6:
(wywaliłem niepotrzebną linijkę z getchar() na końcu)
$ gcc-4.6 -O3 kot.c
$ time ./a.out
CPU time = 8.100000
just for fun 91.999668
./a.out 8,12s user 0,01s system 99% cpu 8,128 total
$ gcc-4.6 -O3 --fast-math kot.c
$ time ./a.out
CPU time = 0.700000
just for fun 91.999668
./a.out 0,71s user 0,00s system 99% cpu 0,716 total
Ciekawi mogą zajrzeć do assemblera i zobaczyć, że gcc zastąpiło
dzielenie i 2 dodawania przez mnożenie i dodawanie. Psuje to pełną
zgodność ze standardem, ale generuje kod 11 razy szybszy.
$ gcc-4.6 -O3 --fast-math -fopenmp kot.c
$ time ./a.out
CPU time = 7.540000
just for fun 91.999668
./a.out 7,18s user 0,39s system 394% cpu 1,917 total
Interesujące - wszystkie rdzenie obciążone, dużo czasu w kernel mode a
czas wykonania ponad 2 razy dłuższy nie mówiąc o czasie procesora, który
jest 10 razy dłuższy.
Pora pobieżnie przejrzeć kod i zaaplikować patch:
- #pragma omp parallel
{
- #pragma omp for schedule(static,100)
for(i = 0; i < n; i++)
v2[i] = v1[i]/(c*c) + epsilon0 + pi;
setup(vec[i1]);
+ #pragma omp parallel for schedule(static,4096)
for(j = 0; j < m; j++)
{
$ gcc-4.6 -O3 --fast-math -fopenmp kod.c
$ time ./a.out
CPU time = 1.960000
just for fun 91.999668
./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:
1. NIE wykonywaniu TEGO SAMEGO kodu wielokrotnie (naprawdę się
zastanawiam, czy slawek nie umie czytać, czy zrobił to specjalnie(co
będzie pewnie utrzymywać)).
2. sensowny przydział bloków obliczeń
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 06.03.12 06:04 Karol Y
- 06.03.12 09:43 slawek
- 06.03.12 10:00 Roman W
- 06.03.12 12:52 Michoo
- 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-08 Router LTE z możliwością zmian MTU
- 2025-07-08 Re: Pożar w Ząbkach a polscy dyletanci
- 2025-07-08 Trójmiasto => Head of Social Media <=
- 2025-07-08 Warszawa => MENA New Business Manager <=
- 2025-07-08 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-08 Warszawa => Customer Service with Spanish + translation <=
- 2025-07-08 Warszawa => Senior Account Manager <=
- 2025-07-08 Parkometry bez podstawy prawnej
- 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...