Seminář 3 - Paralelní programování

Zdroje

Úkol č. 3

  1. Implementujte paralelní mergesort, kde počet použitých vláken bude dodán uživatelem. To, jakou techniku vláknování zvolíte, záleží na vás.
  2. Implementujte jednoduchý server, který mergesort z bodu 1 zpřístupní klientům a který bude schopný obsloužit více klientů najednou - protokol komunikace s klienty je popsán v dalším bodě.
  3. Implementujte klienta, který se serverem z bodu 2 bude komunikovat následujícím způsobem:
    • Klient po připojení k serveru zadá, jak velké pole má být tříděno a počet vláken, které algoritmus dostane k dispozici. Tedy odešle zprávu ve tvaru x y, kde x a y jsou přirozená čísla určující velikost pole a počet vláken.
    • Server po obdržení požadavku x y vytvoří náhodné pole int[] arr velikosti x.
    • Server arr setřídí paralelním mergesortem z bodu 1 s y vlákny a změří čas třídění t v milisekundách.
    • Server odpoví zprávou t ms.
    • Server čeká na další požadavek.
    • Pro ukončení spojení může klient použít požadavek quit.
    • Pro zastavení serveru může klient použít požadavek stopserver.
    • Na libovolný jiný požadavek server reaguje zprávou undefined.

Poznámky