-
Data: 2015-04-09 16:35:43
Temat: Re: Atomowość operacji vs wieloprocesorowość
Od: Wojciech Muła <w...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Thursday, April 9, 2015 at 1:20:44 PM UTC+2, M.M. wrote:
> Jakie korzyści płyną z tego w praktyce?
No takie, że jeden procesor zawsze odczyta/zapisze całe 64 bity
w całości, nie musi dbać o zapis i odczyt. Chodzi o to, że jak
zapisujesz 64-bitową liczbę to masz *gwarancję*, że zapisane zostały
wszystkie dane, a nie, że np. 1 procesor zapisał pierwsze 3 bajty,
a 2 procesor dopisał 5 pozostałych.
> Jak mam przypisanie:
> zmienna_lokalna = zmienna_globalna;
> Zmienna globalna mogła zostać zmodyfikowana przez inny wątek/proces.
> Jeśli dostępu do zmienna_globalna nie obejmę sekcją krytyczną, to
> wiem że dane w zmiennej globalnej i tak będą spójne. Ale co w sytuacji, gdy
> wątek modyfikujący robi:
> zmienna_globalna += cos;
> albo
> zmienna_globalna *= cos;
> zmienna_globalna %= cos;
>
> Czy dane nadal będą spójne?
Ale to jest już inny przypadek. Dodawanie, odejmowanie i operacje
bitowe też mogą być atomowe na x86, ale dla pozostałych rzeczywiście
trzeba mieć jakąś formę sekcji krytycznej.
> Na pewno z powodu pamięci cache i tak zostaną te same problemy.
Cache akurat nie ma tutaj znaczenia.
> Wątek odczytujący może otrzymać zmienna_globalna z opóźnieniem. Czyli
> wątek zapisujący i tak musi zrobić powolną operację zrzutu
> zmodyfikowanych danych. Nie lepiej od razu użyć sekcji krytycznej
> i mieć prostszy kod w analizie, nie wspominając o możliwości
> kompilacji na inne procesory, albo o uruchamianiu na klastrze.
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).
w.
Następne wpisy z tego wątku
- 09.04.15 18:12 szemrany
- 09.04.15 18:26 M.M.
- 09.04.15 18:45 M.M.
- 09.04.15 22:44 Bronek Kozicki
- 10.04.15 16:16 Maciej Sobczak
- 10.04.15 18:31 M.M.
- 11.04.15 10:47 Maciej Sobczak
- 11.04.15 11:20 M.M.
- 13.04.15 20:27 Wojciech Muła
- 14.04.15 09:21 M.M.
- 15.04.15 18:38 Wojciech Muła
- 16.04.15 06:43 M.M.
Najnowsze wątki z tej grupy
- 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
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe
- 2024-12-04 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-04 Warszawa => Software .Net Developer <=
- 2024-12-04 Re: Zadrży rząd Tuski przed "zniesławianym"/zniesławianym "ruskim szpiegiem"? [Oleinychenko wydalony]
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=