🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309595

Re: future i threads pools

#309595
From: bartekltg
Date: Fri, 12 Jan 2018 22:06
64 lines
4493 bytes
On Friday, January 12, 2018 at 9:47:21 PM UTC+1, M.M. wrote:
> On Friday, January 12, 2018 at 5:35:29 PM UTC+1, bartekltg wrote:
> > On Friday, January 12, 2018 at 5:34:35 PM UTC+1, bartekltg wrote:
> > > On Friday, January 12, 2018 at 4:51:12 PM UTC+1, Borneq wrote:
> > > > Jest co prawda w Google:
> > > > http://en.cppreference.com/w/cpp/thread/future
> > > > http://www.cplusplus.com/reference/future/future/
> > > > 
> > > > Ale są tam raczej szczegóły które można czytać gdy się mniej więcej wie 
> > > > co to jest. A jakby można to wytłumaczyć? Jaka różnica future i threads 
> > > > pools w porównaniu z wątkami?
> > > 
> > > -Gdzie tam widzisz poole?
> > > -Wytłumaczyć co? Musizz dać nam konkretny problem;>
> > > -Wątki sa 'niższego poziomu'. async/future to klocki, z których wygodnie
> > > możesz _pewne_ rzeczy budować. 
> > 
> > Samy tytuł
> > https://www.youtube.com/watch?v=4OCUEgSNIAY
> > ;-)
> 
> Skoczyłem tylko do rezultatów, nie na razie godziny czasu aby obejrzeć

Ogolnie polecam wyklady z cppcon. Też jeszcze nie nadrobilem, ale czasem 
do obiadu mozna sobie puścić. Tylko nie te trudneijsze, bo ciężko
się trawi;-)

> całość. Wygląda na to, że HPX Blocked wygrywa. Co takiego złego jest w
> OpenMP?

Złego nie ma nic. OpenMP jest dobre do zrobienia pętli. 
Jeśli zaczynasz dawać mu różna kawałki, działał (kiedyś, nie wiem jak
ostatnio) kiepsko - albo rozwijał tylko najwyzszy poziom urównoleglania,
albo wszystkie. 

I w sumie to samo daje async(co, co karmisz funkcją a  zwraca future do 
wyniku), o ile jedla zaimplementowały ładnie threadpoolem. 
Kiedyś był cilk/cilk plus, bardzo mim się koncepcja podobała,
ale projekt się zwija.

Numer z filmiku polega na zrobieniu kroku dalej. Pisząc z uzyciem
openMP/cilca/std::async często robisz tak, ze masz jednen "potok
tego, co sie dzieje", i co jakiś czas widzisz, że to zadanie jest
łatwo urównoleglalne, a te parę zadań można odpalić niezależnie...
Przed wyjściem z funkcji zbierasz wszystkie wyniki (masz barierę 
synchronizacji czy to przez odczytanie futurów, czy koniec obszaru
objętego pragmą openmp). Ale mozę dałoby się równolegle wykonać
coś więcej? Więc funkcja nie zwraca wyniku, jeśli go nie potrzebuje,
bo wtedy musiałaby zaczekać na niego, ale przekazuje euture dalej.

Więc na naszych 48 procesorach być może zamiast 60% czasu pracować 
na wszykich rdzeniach, będzie na wsztkich pracować 95% czasu. 

tl;dr: w opengl nie ma nic złego. Tylko nieraz chcemy móc robić 
więcej. Jeśli nie cehmy, nic nas do dziwnych bibliotek nie zmusza;-)
 

A, co do async vs wątki, warto wspomnieć do roznicy miedzy
"concurrency" a "parallelism". Do wspołbieżności wątki nadal 
są potrzebne. Masz wątek robiący coś i wątek robiący coś,
jakoś się tam komunikują. 

pzdr
bartekltg
Technical Details
Message-ID: <cc130633-b495-460a-911d-4290950b0dd9@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!i22no710764qta.1!news-out.google.com!e39ni214qtk.1!nntp.google.com!z1no911078qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <p3alhe$9nn$1@node1.news.atman.pl> <6d7bbe96-f0ff-4a58-9cd0-302fdba2b359@googlegroups.com> <5f9795b0-c666-4ce6-981a-9d80f2c2c11d@googlegroups.com> <ec2a42d5-baee-4c63-977e-4ae4cbc190e8@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.55.25.230 with SMTP id 99mr12543360qkz.41.1515794807601;        Fri, 12 Jan 2018 14:06:47 -0800 (PST)
X-Received: by 10.31.168.202 with SMTP id r193mr2932238vke.4.1515794807383; Fri, 12 Jan 2018 14:06:47 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!i22no710764qta.1!news-out.google.com!e39ni214qtk.1!nntp.google.com!z1no911078qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Fri, 12 Jan 2018 14:06:47 -0800 (PST)
In-Reply-To: <ec2a42d5-baee-4c63-977e-4ae4cbc190e8@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=2a02:a311:413d:3780:207b:a568:984c:ecc; posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
NNTP-Posting-Host: 2a02:a311:413d:3780:207b:a568:984c:ecc
References: <p3alhe$9nn$1@node1.news.atman.pl> <6d7bbe96-f0ff-4a58-9cd0-302fdba2b359@googlegroups.com> <5f9795b0-c666-4ce6-981a-9d80f2c2c11d@googlegroups.com> <ec2a42d5-baee-4c63-977e-4ae4cbc190e8@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cc130633-b495-460a-911d-4290950b0dd9@googlegroups.com>
Subject: Re: future i threads pools
From: bartekltg <bartekltg@gmail.com>
Injection-Date: Fri, 12 Jan 2018 22:06:47 +0000
X-Received-Body-CRC: 3194411804
X-Received-Bytes: 4949
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit