Övning5 - Parallellisering av "dekrypteringsalgoritm"

Följande textfil  innehåller en text som krypterats av en väldigt enkel krypteringsalgoritm (ASCII värdet för varje tecken i texten har adderats med 1). Med följande Java-program kan texten i den krypterade filen dekrypteras och sparas i en ny fil. Kompilera och kör dekrypteringsprogrammet och lägg märke till tiden för hur länge det tar att gå igenom textens alla tecken och dekryptera dem.

Programmera om dekrypteringsprogrammet så det blir lite effektivare. Spjälk upp dekrypteringsalgoritmen i två delar så att den ena delen utförs av en arbetartråd ("worker thread") och den andra delen utförs av en annan arbetartråd. Parallellisera enligt "Domain decomposition" modellen, dvs. låt arbetartråd1 dekryptera första halvan av texten och arbetartråd2 dekryptera andra halvan. Låt huvudtråden ("master thread") vänta på att båda arbetartrådarna dekrypterat klart innan filen med den dekrypterade texten skapas och sparas.
Använd en trådgrupp ("thread pool") på två trådar för att realisera parallelliseringen.

Lägg märke till hur mycket snabbare dekrypteringen blir (i F366 har datorerna dubbla processorkärnor)! (Ta med all trådprogrammeringskod i tidtagningen för att få korrekt resultat för tiden)

Ladda upp din lösning, innehållande alla källkods- och projektfiler, på BLS senast fredag 12.11


Jonny Karlsson 2010