eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOpenMP - jest szybciej czy wolniej?Re: OpenMP - jest szybciej czy wolniej?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.n
    eostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "slawek" <s...@h...pl>
    Newsgroups: pl.comp.programming
    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@ine
    ws.gazeta.pl>
    <4f50bea4$0$1268$65785112@news.neostrada.pl><jiqfeg$dvn$...@i...gazeta.pl
    ><4f50c486$0$26685$65785112@news.neostrada.pl><jiqhqe$dvn$...@i...gazeta.
    pl>
    <jiqi0e$dvn$10@inews.gazeta.pl><4f50ddac$0$1279$6...@n...neostrada.p
    l><jiqqlu$dvn$13@inews.gazeta.pl><4f50f4d2$0$26694$6...@n...neostrad
    a.pl> <jiqt59$dvn$15@inews.gazeta.pl>
    <4f50fa41$0$26701$65785112@news.neostrada.pl>
    <jisdma$441$1@inews.gazeta.pl>
    <4f51eeb2$0$1213$65785112@news.neostrada.pl>
    <17879294.84.1330773260414.JavaMail.geo-discussion-forums@vbbfy7>
    In-Reply-To: <17879294.84.1330773260414.JavaMail.geo-discussion-forums@vbbfy7>
    Subject: Re: OpenMP - jest szybciej czy wolniej?
    Date: Sat, 3 Mar 2012 13:49:11 +0100
    MIME-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 14.0.8117.416
    X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
    Lines: 59
    Message-ID: <4f521345$0$1270$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 62.69.202.124
    X-Trace: 1330778949 unt-rea-a-02.news.neostrada.pl 1270 62.69.202.124:64513
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:195938
    [ ukryj nagłówki ]


    Użytkownik "Roman W" <b...@g...pl> napisał w wiadomości grup
    dyskusyjnych:17879294.84.1330773260414.JavaMail.geo-
    discussion-forums@vbbfy7...
    > On Saturday, March 3, 2012 10:13:08 AM UTC, slawek wrote:
    >> Właśnie w tym cały wic:
    >>
    >> 1. OpenMP "podręcznikowo" stosuje się tak:
    >>
    >> !$omp parallel do
    >> do i = 1,N
    >> ! ... robota do wykonania
    >> end do
    >> !$omp end parallel do
    >>
    >> tymczasem narzut na utworzenie wątków jest paskudnie duży i opłaca się
    >
    > To, skoro masz do zrownoleglenia prosta petle, olej Open MP i tworz watki
    > samemu? W C++ moglbys uzyc np. boost::threads. Latwe w uzyciu i tanie.

    Więc właśnie dojrzałem do olania.

    Mam dużo rachowania na liczbach zespolonych, ma to działać pod
    Uniksem/Linuksem/? (co tam gdzie się znajdzie), ma to w miarę możliwości
    używać wielu CPU (tzn. 2048 rdzeni na ten przykład), ma być
    łatwe-proste-przyjemne (jeden plik źródłowy), z bibliotek to niech używa
    lapack/blas/itp. a i to może lepiej nie, bo i po co?

    Wybór padł na Fortran, bo dość łatwo go znaleźć na mainframesach (zwykle są
    ze 3-4 kompilatory do wyboru). Oczywiście (?) nie Fortran 77, bo nie chce mi
    się liczyć do 73. A po lekturze książki Krzyżanowskiego "Obliczenia
    inżynierskie i naukowe. Skuteczne, szybkie, efektowne", Wydawnictwo Naukowe
    PWN, 2011, http://www.mimuw.edu.pl/~przykry/ przyszło mi do głowy, że jak
    już jest gotowy (tzn. działa, ale sam problem który jest nim rozwiązywany
    "ewoluuje", np. udało mi się rozwiązać niezły jego kawałek analitycznie, co
    stwarza zupełnie nowe możliwości) program, to dodanie współbieżności a'la
    OpenMP jest trywialne i - co najważniejsze - da się zrobić standardowo w
    Fortranie. Bez niszczenia tego, co jest.

    I niestety, wydaje się że cała koncepcja OpenMP jest w tej chwili po prostu
    błędna. Podobne do moich problemy są dość często spotykane - program z
    OpenMP działa wolniej niż bez. A skoro działa wolniej - to nie ma
    najmniejszego sensu używać. Bo i po co używać czegoś, co wymaga dodatkowej
    roboty i od programisty, i od komputera - a nic w zamian nie daje?!

    I jeszcze jedno - OpenMP z GCC 4.6 obciąża rdzenie 20% do 30%. OpenMP jakie
    daje Microsoft (w MS Visual Studio Professional 2010) jest znacznie
    wydajniejsze: obciążenie idzie do 100% na każdym rdzeniu. Ale i tak program
    z OpenMP osiągnął wydajność... 50% wydajności programu bez OpenMP. I
    dlatego - jeżeli nie będzie postępu - OpenMP jest chybione.

    To już wolę PBS i uruchomić endziesiąt instancji mojego programu - każda z
    innym zestawem danych. Też jest równolegle, a nawet prościej - nie trzeba
    nic w programie zmieniać.

    A jak będę się nudził, to raczej spróbować na GPU/CUDA niż drążyć OpenMP.
    Zwłaszcza iż OpenMP nie wiadomo jak obsługuje I/O i takie tam.



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: