// 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) | |||||