-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Algorytmiczny problem lamera... :-)
Date: Sun, 12 Oct 2014 21:03:54 +0200
Organization: ATMAN - ATM S.A.
Lines: 111
Message-ID: <m1ejaq$qkb$1@node2.news.atman.pl>
References: <1...@g...com>
<m0s8le$lfc$1@node2.news.atman.pl>
<4...@g...com>
<m18osf$4gt$1@node1.news.atman.pl>
<2...@g...com>
<m1cdr5$18m$1@node1.news.atman.pl>
<1...@g...com>
<m1dmig$8km$1@node1.news.atman.pl>
<a...@g...com>
<m1e6hq$pik$1@node1.news.atman.pl>
<1...@g...com>
NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1413140634 27275 89.73.81.145 (12 Oct 2014 19:03:54 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sun, 12 Oct 2014 19:03:54 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101
Thunderbird/31.1.2
In-Reply-To: <1...@g...com>
Xref: news-archive.icm.edu.pl pl.comp.programming:206746
[ ukryj nagłówki ]On 12.10.2014 19:53, M.M. wrote:
> On Sunday, October 12, 2014 5:25:46 PM UTC+2, bartekltg wrote:
>> On 12.10.2014 13:39, M.M. wrote:
>> Trochę porównujesz inne rzeczy.
>> Test odpalasz 10 razy. Ale pamięć dla tablic alokujesz tylko
>> raz, dla kontenerów 10 razy:>
> O to chodzi aby nie porownywac takich samych procedur - zart :D
> Powiedzmy ze porownuje wszelka wygode programowania na szablonach z
> metlikiem wskaznikow.
>
>> BTW,
>> static int data[CNT_ROWS][CNT_COLS];
>> Zdecydowanie nie leży na stosie ;-) Przez to static.
> Zgadzam sie.
>
>> Znasz rozmiary statycznie, a jednak nie używasz resize.
>> przez co alokujesz to co trzeba, ale też polowę, ćwiartkę...
> Porownuje tez listy vs wektory. Lista powinna byc sprytniejsza.
A niby czemu? Jeśli dlatego, że to powiązane kawałki tablic,
odbije się to na późniejszej wydajności dostępu.
http://en.wikipedia.org/wiki/Unrolled_linked_list (albo drzewo)
Skoro wiemy, ile danych będzie, lepiej podpowiedzieć to kontenerowi.
Nawet nie trzeba wiedzieć dokładnie, po to jest "reserve".
>> Rules jako tablica tablic możę bie być najlepsza? I tak każda
>> reguła jest inaczej używana, nie wsadzisz więc tego w pętlę.
>> Czemu nie struktura? [update, zaminiłem ma pair, przyszpieszenie
>> znikome]
> Hmmm moze, nie wiem.
>
>> > for( int i=0 ; i<LOOPS ; i++ ) {
>> > for( int i=0 ; i<CNT_ROWS ; i++ ) {
>> Nie rób tak ;-)
> Poniewaz taka sama nazwa zmiennej? Lubie tak robic, choc
> przyznaje, ze czasami tez mnie to drazni. Jednak generalnie dla
> programisty mniej zmiennych do analizy, a dla kompilatora... tez
> mniej zmiennych do optymalizowania.
Jak mniej zmiennych? Masz zmienną 'i' z pętli zewnętrznej oraz zmienna
'i' z pętli wewnętrznej. To, że pierwsze 'i' nie jest dostępne dla
Ciebie przez nazwę, nie znaczy, że nie istnieje, kompilator ma tyle
samo zmiennych:) To jedynie pułapka na programistę.
>> Wrzuciłem napisaną przez siebie wersję na vector.
>> Ciut wolniejsza, ale nie aż tak;-)
> Dzieki wielkie!
>
>
>> testRaw
>> 9.14884s sum=-191116600
>> testRaw2
>> 6.54265s sum=-191116600
>> testVectBrt
>> 10.0932s sum=-191116600
>> testVect2Brt
>> 9.03653s sum=-191116600
>
> Ciekawe dlaczego u Ciebie testRaw2 taki szybki wypadl. U mnie byl
> ciut wolniejszy. Z powodu innego sprzetu, kompilatora, opcji
> kompilacji?
-O3 -std=c++11 -march=native -mtune=native
Różnica jest też na -O2, gdy użyję
-fprofile-generate
-fprofile-use
na samym O2 nie ma. Do asma nie zaglądałem.
Dlaczego aż o tyle szybszy, pojęcia nie mam;-)
>> long long testVector()
>> {
> Musze sprawdzic, czy vector z stdliba te ma constBegin, albo metode
> 'at' zamiast operatora indeksowania[].
Ma.
At() to to samo co [] + sprawdzanie zakresu (jeśli jest poza, rzuca
specjalny wyjątek).
> W QT metoda at jest duzo szybsza
> od operatora[].
Dziwne to QT... ;-)
>> long long testVector2()
>> {
> Hmmmm, sprytniejsze.
Główne przyspieszenie jest jednak z niemaczania struktury:)
A, wersja indeksowa/wskaźnikowa ma taką zaletę, że łatwiej
(nie każde omp i kompilator wspiera iteratory) zrównoleglić
przez openmp.
Samo dodanie do testRaw
#pragma omp parallel for reduction(+:sum) //<-----
for( int i=0 ; i<CNT_ROWS ; i++ ) {
zbiło wynik do 5s (4 rdzenie).
pzdr
bartekltg
Następne wpisy z tego wątku
- 12.10.14 22:03 M.M.
- 24.10.14 10:55 m...@g...com
Najnowsze wątki z tej grupy
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-25 Wrocław => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-25 Warszawa => Sales Assistant <=
- 2024-12-25 Kraków => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-25 Lublin => System Architect (Java background) <=
- 2024-12-25 Szczecin => Specjalista ds. public relations <=
- 2024-12-25 Wrocław => Key Account Manager <=
- 2024-12-25 Kraków => Full Stack .Net Engineer <=
- 2024-12-25 Kraków => Programista Full Stack .Net <=
- 2024-12-25 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-25 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-25 Białystok => Delphi Programmer <=
- 2024-12-25 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-25 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2024-12-25 Mińsk Mazowiecki => Spedytor Międzynarodowy <=
- 2024-12-24 Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie