| @@ -43,6 +43,20 @@ abstract class Oblig4 { | |||
| // Requires x, y, n, MAX_X, MAX_Y, and coHull | |||
| // to be filled out. | |||
| Thread draw() { | |||
| if (n > 20000) { | |||
| System.out.println(name+": Too many dots to draw."); | |||
| return null; | |||
| } | |||
| System.out.println(name+" coHull: "); | |||
| for (int i = 0; i < coHull.size(); ++i) { | |||
| if (i == 0) | |||
| System.out.print(coHull.get(i)); | |||
| else | |||
| System.out.print(", "+coHull.get(i)); | |||
| } | |||
| System.out.println(""); | |||
| DrawThread t = new DrawThread(this); | |||
| t.start(); | |||
| return t; | |||
| @@ -0,0 +1,8 @@ | |||
| Filling... | |||
| Done. | |||
| Sequential: 886.05μs | |||
| Parallel: 2.76ms (0.32x speedup) | |||
| Sequential coHull: | |||
| 290, 396, 896, 782, 178, 172, 433, 466, 228, 341, 836, 588, 789, 212, 83, 275, 551, 826, 840, 712, 311, 326, 62, 432, 196, 214, 98, 154, 615, 643, 922, 828, 394, 181, 783, 67, 721, 938, 932, 69, 682, 237, 545, 732, 569, 110, 785, 485 | |||
| Parallel coHull: | |||
| 290, 396, 896, 782, 178, 172, 433, 466, 228, 341, 836, 588, 789, 212, 83, 275, 551, 826, 840, 712, 311, 326, 62, 432, 196, 214, 98, 154, 615, 643, 922, 828, 394, 181, 783, 67, 721, 938, 932, 69, 682, 237, 545, 732, 569, 110, 785, 485 | |||
| @@ -0,0 +1,42 @@ | |||
| Kompilering: `javac *.java` | |||
| Kjøring: `java Main <tall>` | |||
| # Eksempelutskrift | |||
| I filen output.txt finner du et eksempel på å kjøre `java Main 1000`. | |||
| # Tider | |||
| CPU: Intel Core(TM) i7-6700K @ 4.00GHz | |||
| Jeg aner ikke hvorfor jeg får så dårlig speed-up på n=1 million, men det skjer | |||
| konsekvent hver gang, både på desktopen og serveren min. | |||
| 100: | |||
| * Sekvensiell: 312.89μs | |||
| * Parallell: 2.83ms (0.11x speedup) | |||
| 1 000: | |||
| * Sekvensiell: 721.01μs | |||
| * Parallell: 2.78ms (0.26x speedup) | |||
| 10 000: | |||
| * Sekvensiell: 3.56ms | |||
| * Parallell: 3.72ms (0.96x speedup) | |||
| 100 000: | |||
| * Sekvensiell: 27.53ms | |||
| * Parallell: 21.84ms (1.26x speedup) | |||
| 1 000 000: | |||
| * Sekvensiell: 60.21ms | |||
| * Parallell: 122.83ms (0.49x speedup) | |||
| 10 000 000: | |||
| * Sekvensiell: 452.31ms | |||
| * Parallell: 313.85ms (1.44x speedup) | |||
| 100 000 000: | |||
| * Sekvensiell: 3.81s | |||
| * Parallell: 2.66s (1.44x speedup) | |||