|
Ö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 |
|
|
|