-
X-Received: by 10.140.41.104 with SMTP id y95mr700437qgy.7.1427972075323; Thu, 02 Apr
2015 03:54:35 -0700 (PDT)
X-Received: by 10.140.41.104 with SMTP id y95mr700437qgy.7.1427972075323; Thu, 02 Apr
2015 03:54:35 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
peer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media
.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!m20no97615iga.0!news-out.
google.com!k20ni0qgd.0!nntp.google.com!z60no260776qgd.0!postnews.google.com!gle
groupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 2 Apr 2015 03:54:35 -0700 (PDT)
In-Reply-To: <2...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.122.220;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 178.36.122.220
References: <4...@g...com>
<d...@g...com>
<meti4e$osd$1@srv.chmurka.net>
<f...@g...com>
<mevfpd$gpa$1@srv.chmurka.net>
<e...@g...com>
<mf1tnf$d48$1@srv.chmurka.net>
<d...@g...com>
<e...@g...com>
<f...@g...com>
<b...@g...com>
<4...@g...com>
<f...@g...com>
<8...@g...com>
<b...@g...com>
<c...@g...com>
<2...@g...com>
<b...@g...com>
<6...@g...com>
<b...@g...com>
<7...@g...com>
<9...@g...com>
<b...@g...com>
<2...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a...@g...com>
Subject: Re: poprawność algorytmu
From: "M.M." <m...@g...com>
Injection-Date: Thu, 02 Apr 2015 10:54:35 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Lines: 129
X-Received-Bytes: 8405
X-Received-Body-CRC: 203671373
Xref: news-archive.icm.edu.pl pl.comp.programming:207773
[ ukryj nagłówki ]On Thursday, April 2, 2015 at 10:56:13 AM UTC+2, g...@g...com wrote:
> W dniu czwartek, 2 kwietnia 2015 08:14:46 UTC+2 użytkownik M.M. napisał:
>
> > > > > 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.
>
> Raczej miałem na myśli ton, w jakim zadałem powyższe pytanie.
> Strasznie mnie smuci to, że dyskusje na tej grupie są często
> mało merytoryczne i sprowadzają się do udowadniania sobie
> nawzajem, kto jest mądrzejszy, albo do obrażania siebie nawzajem.
Nie rozumiem o jaki ton chodzi, ale nieważne.
>
> > 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.
>
> Szczerze mówiąc to co piszesz jest dla mnie zaskakujące.
> Tzn. dla mnie słowo "precyzja" do tej pory miało zawsze
> to samo znaczenie, niezależnie od kontekstu. Mógłbyś
> spróbować jakoś wyeksplikować te różne znaczenia tego
> słowa?
Podajemy definicję sposobu wybierania owoców. Definicja
jest precyzyjna, ponieważ zdefiniowany nią sposób,
wybiera dokładnie jeden gatunek jabłek. Ale jednocześnie
definicja nie jest precyzyjna, bo w ramach jednego
gatunku wybiera jabłka duże i małe. Gdy ktoś skupi uwagę
na rozmiarze jabłek, to dla niego definicja będzie
nieprecyzyjna, bo nie wiadomo o jaki rozmiar chodzi.
Gdy ktoś skupi się na gatunku, to uzna że jest bardzo
precyzyjna.
> > > 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.
>
> W podaniu linku do literatury oczywiście nie ma,
> ale jest coś niedobrego w podchodzeniu do dyskusji
> w kategoriach tego, kto ma rację, a nie tego, jak
> się rzeczy mają. (W każdym razie mam wrażenie, że
> na tej grupie roi się od osób, które czują się na
> tyle wielkie, że niczym wyrocznia w Delfach są
> zwolnione z konieczności uzasadniania swoich stwierdzeń)
>
> > > To jest trochę (bardzo?) OT,
> > Nie jest OT, rozmawiamy od dowodzeniu poprawności równoległego programu.
>
> Tak, ale temat programowania współbieżnego jest dość przepastny.
> W każdym razie bardzo daleki od tego, o co pytał OP (jednak trzeba
> przyznać, że nie udzielił dostatecznie dużo informacji, żeby móc
> uzyskać sensowną pomoc)
>
> Przy okazji -- Twój dowód, że nie ma deadlocka, jest niepoprawny
> również z innego względu, mianowicie takiego, że istnieją programy,
> w których nie używa się semaforów, a w których mimo to nie występują
> deadlocki.
Nie rozumiem. Chyba chciałeś napisać "występują". Czy możesz podać jeden
kontrprzykład w którym dojdzie do zakleszczenia, jeśli używam mojego
sposobu, a syncthread traktujemy tak, jakby było objęte semaforami w
podanej przeze mnie kolejności?
> W ramach ciekawostki dopowiem, że Bell Labs stworzyło
> język Promela i system SPIN do weryfikacji, czy w programie może
> dojść do zakleszczeń (dowody w tym systemie nie mają jednak natury
> syntaktycznej, tylko opierają się o konstruowanie modeli. W każdym
> razie w tym systemie używa się własnie jednej z odmian logiki
> temporalnej do formułowania twierdzeń o stanach systemu)
Jak juz pisałem, nie wiem co to jest logika temporalna.
> Być może Twoje twierdzenie rzeczywiście dałoby się uogólnić,
> generalizując pojęcie semaforu, i w rezultacie uzyskać system
> dowodzący, że w programie nie dojdzie nigdy do dead-locku,
> jednak nie jestem pewien, czy ów dowód (albo system) byłby
> z technicznego punktu widzenia nietrywialny
Jakby wyglądał formalny dowód to nie mam pojęcia. Ja jakoś
to sobie po prostu wyobrażam że nie dojdzie do deadlocka i
w praktyce nigdy nie doszło. Dlatego tak bardzo zależy mi,
abyś podał jeden kontrprzykład.
>
> > > 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.
>
> Tak, to jest dobry przykład,
W skrócie: dane muszą być "przemieszane" pomiędzy wątkami i etapami.
> ale trzeba by było jeszcze dopowiedzieć,
> że owe wątki zapisują również dane do pamięci, bo dopiero wtedy zajdzie
> potrzeba synchronizacji
Już wyżej było o tym, nie chciało mi się powtarzać.
Pozdrawiam
Następne wpisy z tego wątku
- 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-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=