Transcript
![Page 1: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/1.jpg)
Paralelismus pro 21. století
Jiří Knesl
![Page 2: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/2.jpg)
Proč?
![Page 3: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/3.jpg)
Future
![Page 4: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/4.jpg)
![Page 5: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/5.jpg)
Promise
![Page 6: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/6.jpg)
![Page 7: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/7.jpg)
PValues
![Page 8: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/8.jpg)
![Page 9: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/9.jpg)
PMap
![Page 10: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/10.jpg)
![Page 11: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/11.jpg)
STM
![Page 12: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/12.jpg)
![Page 13: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/13.jpg)
Actor-based model
![Page 14: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/14.jpg)
![Page 15: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/15.jpg)
Communicating Sequential Processes
![Page 16: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/16.jpg)
Praktický příklad
![Page 17: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/17.jpg)
Přečtu data z db a souboru (paralelně) !
Data z obou zdrojů (statisíce položek) spojím a využiju k tomu všechna jádra !
Pak výsledek paralelně uložím do SQL, Monga a Redisu
![Page 18: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/18.jpg)
První půlka
![Page 19: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/19.jpg)
Actors vs CSP
Source: Google Images (thx)
![Page 20: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/20.jpg)
Actor-based model
![Page 21: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/21.jpg)
Communicating Sequential Processes
![Page 22: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/22.jpg)
A co když Redis worker nebude stíhat?
![Page 23: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/23.jpg)
Actor-based model
![Page 24: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/24.jpg)
Communicating Sequential Processes
![Page 25: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/25.jpg)
FINISH HIM!
Source: Google Images (thx)
![Page 26: Jiří Knesl - Techniky paralelního programování pro 21. století](https://reader036.vdocuments.pub/reader036/viewer/2022062319/554a29b3b4c90520578b4c5d/html5/thumbnails/26.jpg)
Další krok
• Použijte jazyk, který umí moderní paralelismus
• Clojure (actors, CSP, STM), Erlang (actors), Go (CSP), Haskell (STM), Scala (actors)
• Follow @jiriknesl