Uppgift 9 våren 2014Uppgiften ska lämnas till din övningsledare på övningen den 11/4 (10/4 för pallinda14).
Lämna in uppgiften med rätt försättsblad:
För godkänt måste du ha gjort samtliga deluppgifter. Det är tillåtet att göra enstaka fel och misstag men det är viktigt att du försöker lösa samtliga uppgifter. HemuppgiftLäs avsnitt 6-10 i Fundamentals of concurrent programming. Skriftlig uppgiftMatchning
Ta en titt på programmet
Tips: Tänk efter i vilken ordning instruktionerna utförs och vad som händer för vektorer av olika längd. Fraktala bilderFilen julia.go innehåller ett program som skapar bilder och skriver ut dem på fil. Programmet är ganska långsamt. Din uppgift är att fördela beräkningarna så att de sker parallellt på samtliga tillgängliga CPU:er. Använd idéerna från exemplet i avsnitt 10 i kurslitteraturen som utgångspunkt.
Du får gärna ändra i programmet, till exempel genom att använda andra
funktioner och andra färgläggningar, men du ska bara lämna in den
parallella versionen av ursprungsprogrammet.
Glöm inte Hur många CPU:er använder ditt program? Hur mycket snabbare blir din parallella version? VäderstationFilen server.go innehåller ett program som simulerar tre stycken oboeroende servrar som visar temperaturen på KTH. Resultatet publiceras på adresserna
Starta programmet och prova sedan att besöka
de tre adresserna i din webbläsare.
Du kommer att upptäcka att de tre tjänsterna inte är
särskilt pålitliga: de är ganska långsamma och ibland får du inget svar alls.
Det kan också hända att du får felmeddelandet Din uppgift är att skriva en klient som samtidigt ställer en fråga till alla servrarna och avbryter sökningen så snart någon av de tre har svarat med en korrekt temperatur. Frågan ska dessutom avbrytas om ingen har svarat inom utsatt tid. Filen client.go innehåller ett kodskelett som du ska utgå från.
|