eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAtomowość operacji vs wieloprocesorowośćRe: Atomowość operacji vs wieloprocesorowość
  • X-Received: by 10.140.27.130 with SMTP id 2mr193688qgx.6.1428949648413; Mon, 13 Apr
    2015 11:27:28 -0700 (PDT)
    X-Received: by 10.140.27.130 with SMTP id 2mr193688qgx.6.1428949648413; Mon, 13 Apr
    2015 11:27:28 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin2!g
    oblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.nl!xs4all!newspeer1
    .nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!l13no4910795iga.0!new
    s-out.google.com!a41ni91qgf.1!nntp.google.com!j5no1275911qga.1!postnews.google.
    com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Mon, 13 Apr 2015 11:27:28 -0700 (PDT)
    In-Reply-To: <6...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.61.138.96;
    posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
    NNTP-Posting-Host: 31.61.138.96
    References: <1...@n...fucking.idea>
    <5...@g...com>
    <a...@g...com>
    <0...@g...com>
    <f...@g...com>
    <5...@g...com>
    <6...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <a...@g...com>
    Subject: Re: Atomowość operacji vs wieloprocesorowość
    From: Wojciech Muła <w...@g...com>
    Injection-Date: Mon, 13 Apr 2015 18:27:28 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Lines: 53
    Xref: news-archive.icm.edu.pl pl.comp.programming:207809
    [ ukryj nagłówki ]

    On Thursday, April 9, 2015 at 6:45:16 PM UTC+2, M.M. wrote:
    > > Ale to jest już inny przypadek.
    > Ściśle inny, generalnie ten sam - wątek jakoś zmodyfikował zawartość
    > zmiennej, a programista nie jest pewny:
    > 1) czy zmodyfikowana zmienna jest widoczna dla innych wątków,

    No to do tego jest bariera pamięci.

    > 2) czy inny wątek może zobaczyć zmienną zmodyfikowana 'w połowie'.

    A od tego mamy gwarancje spójności od producenta. :)

    > > Dodawanie, odejmowanie i operacje
    > > bitowe też mogą być atomowe na x86, ale dla pozostałych rzeczywiście
    > > trzeba mieć jakąś formę sekcji krytycznej.
    > Ok, ale w praktyce używamy języków wysokiego poziomu. Piszę np.
    > a = b;
    > a kompilator wywnioskował że b będzie równe zero i zrobi:
    > a ^= a;
    > Na jakimś procesorze xor może nie być już atomowe.

    Oczywiście, o to trzeba zadbać. C++11 ma std::atomic, które daje ładne
    API do atomiców, barier itp., natomiast kompilator ma wiedzę, którą
    jest w stanie wykorzystać. Nie wiem, jak to wygląda w innych językach
    imperatywnych (Ada, C#).

    > > Sekcje krytyczne, w sensie mutexy, czy semafory, jako obiekty systemowe
    > > są wolne, a nawet bardzo wolne. Dlatego tam gdzie liczy się wydajność
    > > pojawiają się algorytmy lockfree, czyli nie ma jako takiej blokady na
    > > sekwencję instrukcji, ale np. próbuje się do skutku wykonać jakąś
    > > operację, powiedzmy dopisania do kolejki. I tu już można to robić
    > > wydajnie właśnie operacjami atomowymi (głównie compare & exchange)
    > > no i trzeba pamiętać o barierach pamięci (memory fence).
    >
    > Myślałem że memory fence też jest wolne, ale jeszcze nigdy na oczy
    > nie widziałem pomiarów czasu. Może faktycznie to się opłaca...

    Ostatnio kolega wykonał proste testy: prefiks lock na instrukcji
    increment (tj. pełna blokada) vs increment, później store fence --
    z barierą było 2-3 razy szybciej. Podejrzewam, że to trochę
    zależy od całego komputera (kontroler pamięci, liczba procesorów),
    ale sądzę, że czynnik 2 jest dobrym przybliżeniem.

    w.

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: