| // Requires x, y, n, MAX_X, MAX_Y, and coHull | // Requires x, y, n, MAX_X, MAX_Y, and coHull | ||||
| // to be filled out. | // to be filled out. | ||||
| Thread draw() { | 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); | DrawThread t = new DrawThread(this); | ||||
| t.start(); | t.start(); | ||||
| return t; | return t; |
| 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 |
| 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) | |||||