Multithreading projekt/příklad

thread

Multithreading projekt/příklad
« kdy: 23. 06. 2017, 08:43:16 »
Vedel by niekto dat navrh na projekt popr. priklad, na ktorom by sa dalo vyskusat/precvicit viacvlaknove programovanie? Robil by som to v jazyku C#.
Dakujem za napady
« Poslední změna: 23. 06. 2017, 09:05:56 od Petr Krčmář »


asdfqwer

Re:Multithreading projekt/priklad
« Odpověď #1 kdy: 23. 06. 2017, 09:03:15 »
Napsat si TCP/IP server a klienta k tomu. Server multi, aby najednou zvladl vice klientu.

thread

Re:Multithreading projekt/příklad
« Odpověď #2 kdy: 23. 06. 2017, 09:31:11 »
ok, dakujem za tip, tiez som nad tym uvazoval, ale to mi pride celkom na dlhsie.

Kate

Re:Multithreading projekt/příklad
« Odpověď #3 kdy: 23. 06. 2017, 09:38:29 »
ok, dakujem za tip, tiez som nad tym uvazoval, ale to mi pride celkom na dlhsie.
Na dlhsie? Nepsal že máš napsat celý funkční webserver, ale nějaký blíže neurčený TCP/IP server. Prostě si třeba na zkoušku napiš něco co posloucha na nějakém portu a všem připojeným klientům posílá zpátky počet aktuálně připojených kdykoliv se připojí / odpojí nějaký další klient. Nebo jim každou vteřinu pošle aktuální čas.Taková věc je na pár řádků.

mon

Re:Multithreading projekt/příklad
« Odpověď #4 kdy: 23. 06. 2017, 10:38:35 »
zosortuj niekolko 10m riadkov s definovanym poctom threadov


tada

Re:Multithreading projekt/příklad
« Odpověď #5 kdy: 23. 06. 2017, 18:10:26 »
ok, dakujem za tip, tiez som nad tym uvazoval, ale to mi pride celkom na dlhsie.

To napises hned, pak sem muzes postnout vysledek.

Znas metody jako jsou Producent/konzument, atd?

thread

Re:Multithreading projekt/příklad
« Odpověď #6 kdy: 23. 06. 2017, 19:08:22 »
Ano poznam tie metody

Jenda

Re:Multithreading projekt/příklad
« Odpověď #7 kdy: 23. 06. 2017, 20:30:09 »
Vedel by niekto dat navrh na projekt popr. priklad, na ktorom by sa dalo vyskusat/precvicit viacvlaknove programovanie? Robil by som to v jazyku C#.
Dakujem za napady

http://www.ksi.mff.cuni.cz/lectures/NPRG042/html/index.html#@tab_assignments

TL;DR:
  • Parallel Sorting
  • K-means Clustering
  • Levenshtein's Edit Distance
  • Physical Simulation
  • Matrix Multiplication

thread

Re:Multithreading projekt/příklad
« Odpověď #8 kdy: 23. 06. 2017, 22:02:11 »
na niektore z tych uloh je potrebna asi aj ina znalost, ako len paralelne programovanie.

Michal Kovačič

Re:Multithreading projekt/příklad
« Odpověď #9 kdy: 24. 06. 2017, 11:03:30 »
Hmmm...
Nejspíše ano - a v čem to vadí?

na niektore z tych uloh je potrebna asi aj ina znalost, ako len paralelne programovanie.

Re:Multithreading projekt/příklad
« Odpověď #10 kdy: 24. 06. 2017, 12:06:28 »
Citace
na niektore z tych uloh je potrebna asi aj ina znalost, ako len paralelne programovanie.

Krom znalosti algoritmů (abyste je mohl paralelizovat) moc víc znát nepotřebujete, pokud se nesnažíte o opravdu vysoký výkon (v takovém případě se hodí např. znalost vektorových instrukcí).

Samozřejmě, nepočítejte moc s tím, že pokud algoritmus pustíte v N vláknech, dosáhnete N-krát rychlejšího výpočtu, ale na procvičení se tyhle úlohy určitě použít dají (a na MFF se i pro tyto účely používají).

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Multithreading projekt/příklad
« Odpověď #11 kdy: 24. 06. 2017, 14:28:28 »
na niektore z tych uloh je potrebna asi aj ina znalost, ako len paralelne programovanie.
Ten TCP server je dobrý nápad, základ je na pár řádků a pak se dá použít více vláken, GCD nebo třeba kooperativní multitasking (to je obzvlášť poučné).

klokan

Re:Multithreading projekt/příklad
« Odpověď #12 kdy: 26. 06. 2017, 06:55:32 »
Zkus paralelně generovat Mandelbrotovu množinu.

AgentK

  • ***
  • 129
  • Evolve or die!
    • Zobrazit profil
    • E-mail
Re:Multithreading projekt/příklad
« Odpověď #13 kdy: 26. 06. 2017, 09:20:38 »
Taky bych podpořil TCP server. Tam jde aplikovat hned několik přístupů.
Thread/klient je overkill a pro reálné využití to není, listener a pool workerů je asi lepší, můžete tam dělat nějaký loadbalancing.
V rámci studia přistupujte na sdílené prostředky, určitě si zkuste i něco v shm.

Jako další challenge bych doporučil non-blocking IO a/nebo podporu TLS. Obzvláště to druhé je dobré si zažít - lekce správného monitorování událostí na soketu. Ačkoliv C# neznám, předpokládám, že to bude podobně "zajímavé"  jako v C/C++.


-K-

mon

Re:Multithreading projekt/příklad
« Odpověď #14 kdy: 27. 06. 2017, 20:52:39 »
este celkom zalezi ci  sa chces naucit viac multithreadove programovenie samotne alebo dake nadstavby v C#.
teda ci si sam budes riadit thready, pouzivat len zaklady ako mutexy, semafory, fence, atomicke operacie atd. alebo sa chces naucit dake c# nadstavby ako TPL alebo PLINQ