-
Data: 2015-04-02 08:14:44
Temat: Re: poprawność algorytmu
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Wednesday, April 1, 2015 at 5:10:22 PM UTC+2, g...@g...com wrote:
> W dniu środa, 1 kwietnia 2015 15:31:27 UTC+2 użytkownik g...@g...com
napisał:
> > > > Jeśli Cię to bardziej interesuje, polecam kurs z "Heterogenous Parallel
> > > > Programming" na Courserze albo książkę "CUDA w przykładach" (wyd. Helion)
> > > Nie mam aż tyle czasu, myślalem że rzucisz kilka zalet.
> >
> > Zalet synchronizacji wątków przed dostępem do pamięci?
>
> Tak sobie myślę, że chyba niezbyt ładnie się zachowałem,
Podając linki do literatury? To akurat bardzo w porządku. Mnie
się nie chciało już tłumaczyć, że słowo "precyzja" zmienia
znaczenie zależnie od kontekstu. Nie chce mi się precyzyjnie
tłumaczyć za każdym razem jak używam każdego słowa.
> pisząc to, co napisałem powyżej, bo mogłoby to zostać
> odebrane jako pogardliwe, a nie chciałbym, żeby tak było.
> Przepraszam. (Z żalem przyznam, że to chyba "dyskusje"
> z niektórymi osobami na tej grupie tak mnie zdegenerowały,
> choć oczywiście nie ma się co obwiniać, a trzeba pracować
> nad tym, żeby było lepiej)
Nie ma nic pogardliwego w podaniu linku do literatury.
> To jest trochę (bardzo?) OT,
Nie jest OT, rozmawiamy od dowodzeniu poprawności równoległego programu.
> ale nowoczesne procesory graficzne
> pozwalają tworzyć programy zawierające tysiące wątków
Rzecz jasna.
> (z których docelowo może nawet wszystkie będą się mogły
> wykonywać równolegle). Klasyczny przykład to dodawanie
> wektorów: zamiast wykonywać pętlę dodającą po kolei
> tysiąc par elementów, możemy uruchomić tysiąc wątków, z których
> każdy doda po jednej parze elementów.
Choć nie programuję procesorów graficznych, to tak to sobie
wyobrażałem.
> Oczywiście przykład z dodawaniem wektorów nie jest szczególnie
> porywający, zaś kolizje z dostępem do pamięci w tak prostym
> przypadku nie zachodzą.
Trochę szkoda, że podałeś przykład, w którym syncthreads się
nie przyda.
> Gorzej jeżeli mamy kilka etapów obliczeń: może być tak, że
> fragment pamięci, do którego zapis wykona kilka wątków
> na jednym etapie, będzie potem użyty do obliczeń na innym
> etapie. Żeby jednak mogło się tak stać, musimy się upewnić,
> że wszystkie wątki skończyły już zapis -- i do tego właśnie
> używa się __syncthreads()
Ja bym to inaczej uzasadnił, choć nigdy nie używałem takiej metody.
Mamy np. trzy wątki. W pierwszym etapie watek pierwszy dostaje dane spod
adresów 0,1,2, drugi spod: 3,4,5, trzeci spod: 6,7,8. W drugim etapie
wątek pierwszy dostaje dane 0,3,6; drugi 1,4,7; w trzecim 2,5,8.
Wtedy istotnie muszą wszystkie wątki czekać pomiędzy etapami.
Pozdrawiam
Następne wpisy z tego wątku
- 02.04.15 10:56 g...@g...com
- 02.04.15 12:54 M.M.
- 02.04.15 14:13 g...@g...com
- 02.04.15 17:20 M.M.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 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
Najnowsze wątki
- 2025-01-09 Zapierdalać
- 2025-01-09 Wróblewo => Specjalista ds. Analiz Finansowych <=
- 2025-01-09 Kraków => iOS Developer (Swift) <=
- 2025-01-09 Dell ubija / przemianowuje swoje flagowe linie laptopów
- 2025-01-08 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-08 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-08 Katowice => Key Account Manager (ERP) <=
- 2025-01-08 Warszawa => Programista Full Stack .Net <=
- 2025-01-08 Podłączenie DMA 8257 do 8085
- 2025-01-08 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-08 Warszawa => Solution Architect (Java background) <=
- 2025-01-08 Wrocław => Application Security Engineer <=
- 2025-01-08 Warszawa => International Freight Forwarder <=
- 2025-01-08 Mińsk Mazowiecki => Area Sales Manager OZE <=