eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOpenMP - jest szybciej czy wolniej?Re: OpenMP - pewnie, że szybciej (aka "zagadka" rozwiązana)
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!news.internetia.pl!not-f
    or-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 13:52:55 +0100
    Organization: Netia S.A.
    Lines: 51
    Message-ID: <jj51dh$ir4$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>
    <jj3soa$jrf$1@mx1.internetia.pl>
    <4f55dc42$0$1260$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 1331038449 19300 83.238.197.12 (6 Mar 2012 12:54:09 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Tue, 6 Mar 2012 12:54:09 +0000 (UTC)
    In-Reply-To: <4f55dc42$0$1260$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:196005
    [ ukryj 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: