Thread View: pl.comp.lang.c
16 messages
16 total messages
Started by Borneq
Fri, 12 Jan 2018 15:51
future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 15:51
Date: Fri, 12 Jan 2018 15:51
7 lines
1121 bytes
1121 bytes
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?
Re: future i threads pools
Author: bartekltg
Date: Fri, 12 Jan 2018 16:34
Date: Fri, 12 Jan 2018 16:34
25 lines
2334 bytes
2334 bytes
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ć. Zerknij na to ;-) https://www.youtube.com/watch?v=js-e8xAMd1s [materiałow jest wiecej, szukaj po nazwisku]. W wielkim skrócie, odpalenie funkcji tworzy graf zależności (wykrzystując m.in future) a potem jest od odpalany - jak dobrze pojdzie*) praktycznie nie ma sytuacji, że masz nieobsadzone rdzenie. *) zalezy od problemu etc. pzdr bartekltg
Re: future i threads pools
Author: bartekltg
Date: Fri, 12 Jan 2018 16:35
Date: Fri, 12 Jan 2018 16:35
32 lines
2593 bytes
2593 bytes
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 ;-) > Zerknij na to ;-) > https://www.youtube.com/watch?v=js-e8xAMd1s > [materiałow jest wiecej, szukaj po nazwisku]. > W wielkim skrócie, odpalenie funkcji tworzy graf zależności (wykrzystując > m.in future) a potem jest od odpalany - jak dobrze pojdzie*) praktycznie > nie ma sytuacji, że masz nieobsadzone rdzenie. > > *) zalezy od problemu etc. > > pzdr > bartekltg
Re: future i threads pools
Author: Sebastian Biały
Date: Fri, 12 Jan 2018 18:39
Date: Fri, 12 Jan 2018 18:39
8 lines
1175 bytes
1175 bytes
On 1/12/2018 4:51 PM, Borneq wrote: > Jaka różnica future i threads > pools w porównaniu z wątkami? Czas inicjacji. Z grubsza nowy watek wymaga allokacji stosu i kontekstu cpu. W przypadku thread poola to już jest gotowe. Future może działa z poolami i bez. Bez wielkiego znaczenia koncepcyjnie.
Re: future i threads pools
Author: M.M.
Date: Fri, 12 Jan 2018 20:47
Date: Fri, 12 Jan 2018 20:47
25 lines
2485 bytes
2485 bytes
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ć całość. Wygląda na to, że HPX Blocked wygrywa. Co takiego złego jest w OpenMP? Pozdrawiam
Re: future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 21:42
Date: Fri, 12 Jan 2018 21:42
8 lines
1320 bytes
1320 bytes
W dniu 12.01.2018 o 17:34, bartekltg pisze: > Zerknij na to ;-) > https://www.youtube.com/watch?v=js-e8xAMd1s > [materiałow jest wiecej, szukaj po nazwisku]. Słucham, mowa jest o tym że z punktu programisty używającego tego, jest podobne użycie jakby to było sekwencyjne a resztę załatwia mechanizm. A gdzie to opisane? Najlepiej po polsku, może w jakiejś książce?
Re: future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 21:44
Date: Fri, 12 Jan 2018 21:44
10 lines
1476 bytes
1476 bytes
W dniu 12.01.2018 o 17:34, bartekltg pisze: > W wielkim skrócie, odpalenie funkcji tworzy graf zależności (wykrzystując > m.in future) a potem jest od odpalany - jak dobrze pojdzie*) praktycznie > nie ma sytuacji, że masz nieobsadzone rdzenie. Future jest jakby wydajniejsze od zwykłych wątków? jeśli chodzi o rdzenie, bo jest jeszcze to że jak rozumiem możliwość bycia lżejszym, ale to już thread pools: "Z grubsza nowy watek wymaga allokacji stosu i kontekstu cpu. W przypadku thread poola to już jest gotowe."
Re: future i threads pools
Author: bartekltg
Date: Fri, 12 Jan 2018 22:06
Date: Fri, 12 Jan 2018 22:06
64 lines
4493 bytes
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
Re: future i threads pools
Author: bartekltg
Date: Fri, 12 Jan 2018 22:21
Date: Fri, 12 Jan 2018 22:21
44 lines
2798 bytes
2798 bytes
On Friday, January 12, 2018 at 10:42:25 PM UTC+1, Borneq wrote: > W dniu 12.01.2018 o 17:34, bartekltg pisze: > > Zerknij na to ;-) > > https://www.youtube.com/watch?v=js-e8xAMd1s > > [materiałow jest wiecej, szukaj po nazwisku]. > > Słucham, mowa jest o tym że z punktu programisty używającego tego, jest > podobne użycie jakby to było sekwencyjne a resztę załatwia mechanizm. Tak jak i zwykłe async i future. Robisz auto future_bla = async(std::launch::async,funkcja,[parametry]); //robisz co innego //byc moze odpalasz inne asyncy int bla = future_bla.get(); //tutaj wynik funkcji jest potrzebny, jeśli się jeszcze nie wyliczył //poczekamy na niego. > A gdzie to opisane? https://stellar-group.github.io/hpx/docs/html/hpx.html https://github.com/STEllAR-GROUP/hpx > Najlepiej po polsku, To chyba byś musiał sam przetłumaczyć. > może w jakiejś książce? To jest eksperymentalna biblioteka. Jeśli keidyś wejdzie do boosta albo standardu, to może się w książkach znajdzie;-) Na razie rozgryź to, co jest w biblitece standardowej. Wpisując w google async future tutorial trochę znajdziesz. Nawet dokuentacja dla asynca z cplusplus/cppreference ma nienajgorsze przyklady. A, z tego towarzystwa jest jeszcze std::promise. pzdr bartekltg
Re: future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 22:32
Date: Fri, 12 Jan 2018 22:32
12 lines
1434 bytes
1434 bytes
W dniu 12.01.2018 o 23:21, bartekltg pisze: > > To chyba byś musiał sam przetłumaczyć. > >> może w jakiejś książce? > > To jest eksperymentalna biblioteka. Jeśli keidyś wejdzie do boosta albo > standardu, to może się w książkach znajdzie;-) A https://pdf.helion.pl/cpbsp2/cpbsp2.pdf? chyba kupię całą ksiąźkę. Czy ten mechanizm jest nowszy i nie ma w tej książce o c++11?
Re: future i threads pools
Author: bartekltg
Date: Fri, 12 Jan 2018 22:49
Date: Fri, 12 Jan 2018 22:49
26 lines
2559 bytes
2559 bytes
On Friday, January 12, 2018 at 10:44:44 PM UTC+1, Borneq wrote: > W dniu 12.01.2018 o 17:34, bartekltg pisze: > > W wielkim skrócie, odpalenie funkcji tworzy graf zależności (wykrzystując > > m.in future) a potem jest od odpalany - jak dobrze pojdzie*) praktycznie > > nie ma sytuacji, że masz nieobsadzone rdzenie. > > Future jest jakby wydajniejsze od zwykłych wątków? jeśli chodzi o Nie. Dlaczego miałby być. Nawet jak odpalasz nowy wątek, to prawdopodobnie go nie odpalasz, tylko dostajesz z puli;> Zaletą tech klocków jest to, że są wygodniejsze do pisania. > rdzenie, bo jest jeszcze to że jak rozumiem możliwość bycia lżejszym, > ale to już thread pools: > "Z grubsza nowy watek wymaga allokacji stosu i kontekstu cpu. W > przypadku thread poola to już jest gotowe." I teraz pytanie, co tak naprawdę robi konstruktor std::thread może odbiera coś z puli? ;> I czy async na pewno jest zaimplementowany z pulą, Testy z filmiku sugerowały malutki narzut, wiec chyba tak ale potwierdzenia na szybko nie znalazłem. pzdr bartekltg
Re: future i threads pools
Author: bartekltg
Date: Fri, 12 Jan 2018 22:53
Date: Fri, 12 Jan 2018 22:53
24 lines
2404 bytes
2404 bytes
On Friday, January 12, 2018 at 11:32:37 PM UTC+1, Borneq wrote: > W dniu 12.01.2018 o 23:21, bartekltg pisze: > > > > To chyba byś musiał sam przetłumaczyć. > > > >> może w jakiejś książce? > > > > To jest eksperymentalna biblioteka. Jeśli keidyś wejdzie do boosta albo > > standardu, to może się w książkach znajdzie;-) > > A https://pdf.helion.pl/cpbsp2/cpbsp2.pdf? > chyba kupię całą ksiąźkę. > Czy ten mechanizm jest nowszy i nie ma w tej książce o c++11? Nie czytałem, wiec o książce się nie wypowiem. async/future/promise w książkach o c++11 będzie, bo są one z c++11. Co masz napisane na cpprefereence i podobnych stronach. Pytałes o książkę cutując i gadając o bibliotece HPX, która jest rozwinięicem tych pomysłow, i do niej ksiazki nie raczej nie ma. pzdr bartekltg
Re: future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 22:59
Date: Fri, 12 Jan 2018 22:59
7 lines
1328 bytes
1328 bytes
W dniu 12.01.2018 o 23:32, Borneq pisze: > A https://pdf.helion.pl/cpbsp2/cpbsp2.pdf? > chyba kupię całą ksiąźkę. > Czy ten mechanizm jest nowszy i nie ma w tej książce o c++11? Chodziło mi bardziej o podstawowe mechanizmy, które były już w c++11 i są w tej książce.
Re: future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 23:02
Date: Fri, 12 Jan 2018 23:02
12 lines
1669 bytes
1669 bytes
W dniu 12.01.2018 o 23:53, bartekltg pisze: > async/future/promise w książkach o c++11 będzie, bo są one > z c++11. Co masz napisane na cpprefereence i podobnych stronach. > > Pytałes o książkę cutując i gadając o bibliotece HPX, która > jest rozwinięicem tych pomysłow, i do niej ksiazki nie raczej nie ma. Wcześniej nie używałem async/future/promise tylko zwykłych wątków standardowych i obudowywane pthreads. Z powodu nieznajomości mogłem pomylić z HPX ale najpierw przyjrzę się tym standardowym. Pozdrawiam
Re: future i threads pools
Author: Borneq
Date: Fri, 12 Jan 2018 23:04
Date: Fri, 12 Jan 2018 23:04
7 lines
1471 bytes
1471 bytes
W dniu 12.01.2018 o 23:53, bartekltg pisze: > Pytałes o książkę cutując i gadając o bibliotece HPX, która > jest rozwinięicem tych pomysłow, i do niej ksiazki nie raczej nie ma. może poczekam jak będzie w boostcie albo w standardzie rozumiem że ta z HPX jest bardziej wydajna niż ta z c++11 jeśli chodzi o wielordzeniowe procesory?
Re: future i threads pools
Author: bartekltg
Date: Sat, 13 Jan 2018 02:58
Date: Sat, 13 Jan 2018 02:58
36 lines
3088 bytes
3088 bytes
On Saturday, January 13, 2018 at 12:04:49 AM UTC+1, Borneq wrote: > W dniu 12.01.2018 o 23:53, bartekltg pisze: > > Pytałes o książkę cutując i gadając o bibliotece HPX, która > > jest rozwinięicem tych pomysłow, i do niej ksiazki nie raczej nie ma. > > może poczekam jak będzie w boostcie albo w standardzie Ja naprawdę mam wątpliwości, czy rozumiesz, co do Ciebie piszę. async/future/... są w standardzie od 11 i to nimi doradzałem Ci się zajać, przynajmniej na początek. > rozumiem że ta z HPX jest bardziej wydajna niż ta z c++11 jeśli chodzi o > wielordzeniowe procesory? Może, bo ma własną implementację async i na pewno zoptymalizowany pulę wątków. Ale nie mosi, bo std::async też może byc znośnie napisane. Nie to jest zaletą tej biblioteczki. To kobyła do HPC. Dokumentacja nie zaczyna się od jak uruchomić, ale jak wpleśc to w popularne menadzery zadań na superkomputerach. Niezależnie od tego, że biblioteka wielka, technika ciekawa i być może _cześć_ (operacja na future) jej wejdzie do standardu. Ale nie za szybko, jedyne co widzę w c++20 o wykonaniu r.ownoległym to to: http://www.modernescpp.com/index.php/task-blocks I gdzieś tam w oddali http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3562.pdf http://open-std.org/JTC1/SC22/WG21/docs/papers/2017/p0443r1.html Hmm, trochę sie w temacie dzieje. pzdr bartekltg
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads