Honza velice správně upozornil na jednu důležitou věc, kterou jsem zde nechtěl moc rozebírat. Je poměrně složitá a většina členů si s ní celý rok neví rady. Testování na tak dlouhých jednotkách se moc lidem také nechce a z výsledků jsou někdy ještě více zmateni. Naštěstí vám mohu představit postup od Dzordzika, který je rychlý, funguje a je docela jednoduchý na pochopení i realizaci. Budete se možná divit, ale rozdíl v nastavení MT, může být i více než dvojnásobný v množství odevzdaných bodů do soutěže, respektive kolik odvede daný CPU za stejnou dobu na soutěžním projektu práce. Rovněž si můžete ověřit, zda daný CPU je lepší pro PG LLR se zapnutým, nebo vypnutým HT.
Následující popis je tedy jednak pro ladiče a také pro šťouraly, kteří rádi využijí svůj stroj v PG LLR podprojektech opravdu na maximu. Funguje to i pro mnohojádrové a víceprocesorové sestavy (ověřeno na Golemovi i Dzordzikově kombajnu):
3) Vypněte si BOINC Manager a vše co vám zatěžuje CPU, následně spusťte jediný spustitelný soubor - Prime95.exe
CPU cores nechte na Default, které si program osahá. Mělo by to být stejné, jako je aktuální počet výpočetních vláken stroje, na kterém test pouštíte.
9) "number of workers" je počet jednotek testovaných jednotek. Nastavte "1-(počet kolik máte výpočetních vláken, včetně HT), třeba 8" tedy "1-8"
10) čas stačí nastavit jen na 10s. Mělo by se každé nastavení testovat 10s.
11) Po ukončení testu, najdete výsledky v adresáři, kam jste program rozbalili, v souboru "results.txt"
12) Jak číst výsledky? Zajímá vás prakticky až konec souboru, kde je závěrečný souhrn. Například stroj na kterém aktuálně to píši (4-jádrový Haswell i5):
Když pracují 4 jádra na jedné jednotce (první řádek), je "Throughput" (tedy počet operací za sekundu) nejvyšíí. Následují testy na dvou jednotkách, třech a poslední je test práce čtyř jader, každé na jedné jednotce. Hodnota "Throughput" je vždy celková za celý počet zapojených výpočetních vláken. Tedy v tomto případě 4. Nejlepší je tedy zapojit všechna vlákna do výpočtu jedné jednotky. Jak si nastavit app_config pro tuto verzi jsem odkazoval níže.
Aby jste si mohli představit jak to vypadá na Dzordzikově kombajnu a že tohle opravdu nemá jednoduché rozlousknout, uvedu vám jeho výsledky. Jen dodám, že má 22 jader s HT x2, tedy dva 44 vláknové CPU =88 vláken. Test uvádím pro zjednodušení bez HT, tedy se 44 plnokrevnými jádry. V tomto množství (a více CPU) už musíte i brát ohled na to, aby měly všechny vlákna na čem pracovat, tedy počet zapojených jader nebyl lichý. Rovněž aby nepracovaly na stejné jednotce částečně jádra z jednoho a částečně z druhého CPU. Můžete vyčíst, že kdyby prostě jen nechal zapojit všechny jádra do jedné jednotky, tak přijde o většinu potenciálního výkonu (jak správně poukazoval Honza) a i při zapojení dvou do dvou jednotek (tedy jeden CPU by pracoval na jedné), by nezískal aní 1/4 celkového potenciálu.
Timings for 768K FFT length (44 cores, 1 worker): 1.87 ms. Throughput: 534.83 iter/sec.
Timings for 768K FFT length (44 cores, 2 workers): 0.78, 3.76 ms. Throughput: 1540.30 iter/sec.
Timings for 768K FFT length (44 cores, 3 workers): 0.62, 0.62, 6.80 ms. Throughput: 3366.03 iter/sec.
Timings for 768K FFT length (44 cores, 4 workers): 0.67, 0.67, 0.62, 3.00 ms. Throughput: 4955.15 iter/sec.
Timings for 768K FFT length (44 cores, 5 workers): 0.87, 0.81, 0.78, 0.63, 4.58 ms. Throughput: 5468.33 iter/sec.
Timings for 768K FFT length (44 cores, 6 workers): 0.88, 0.97, 0.80, 0.52, 2.43, 2.83 ms. Throughput: 6081.90 iter/sec.
Timings for 768K FFT length (44 cores, 7 workers): 1.11, 1.19, 1.02, 0.97, 0.51, 3.08, 4.46 ms. Throughput: 6246.60 iter/sec.
Timings for 768K FFT length (44 cores, 8 workers): 1.21, 1.15, 1.13, 1.07, 0.57, 0.58, 4.58, 2.97 ms. Throughput: 7530.59 iter/sec.
Timings for 768K FFT length (44 cores, 9 workers): 1.47, 1.37, 1.46, 1.20, 1.25, 0.57, 0.61, 5.50, 4.09 ms. Throughput: 7555.98 iter/sec.
Timings for 768K FFT length (44 cores, 10 workers): 1.54, 1.55, 1.41, 1.42, 1.28, 0.72, 0.62, 2.15, 5.23, 3.05 ms. Throughput: 7475.70 iter/sec.
Timings for 768K FFT length (44 cores, 11 workers): 2.07, 2.22, 1.73, 1.73, 1.76, 1.66, 0.68, 0.62, 3.52, 5.35, 4.71 ms. Throughput: 7024.00 iter/sec.
Timings for 768K FFT length (44 cores, 12 workers): 2.25, 2.26, 2.19, 1.72, 2.08, 1.72, 0.78, 0.79, 0.78, 6.63, 4.90, 5.07 ms. Throughput: 7387.06 iter/sec.
Timings for 768K FFT length (44 cores, 13 workers): 2.67, 2.69, 3.21, 2.82, 3.09, 2.96, 2.19, 0.78, 0.79, 0.78, 8.39, 10.49, 7.33 ms. Throughput: 6708.36 iter/sec.
Timings for 768K FFT length (44 cores, 14 workers): 4.11, 3.97, 4.57, 3.95, 3.67, 4.18, 2.44, 0.87, 0.89, 0.87, 1.94, 8.43, 9.57, 9.32 ms. Throughput: 6151.79 iter/sec.
Timings for 768K FFT length (44 cores, 15 workers): 6.39, 7.24, 3.63, 4.97, 4.09, 4.83, 4.24, 4.16, 0.86, 0.87, 0.86, 2.43, 19.91, 11.17, 10.98 ms. Throughput: 5806.07 iter/sec.
Timings for 768K FFT length (44 cores, 16 workers): 7.13, 7.02, 6.00, 4.86, 6.13, 5.29, 6.12, 4.85, 1.05, 1.03, 1.04, 1.03, 5.82, 11.42, 10.87, 11.17 ms. Throughput: 5682.49 iter/sec.
Timings for 768K FFT length (44 cores, 17 workers): 8.10, 7.96, 9.64, 8.19, 8.83, 6.84, 5.12, 7.14, 5.25, 1.04, 1.04, 1.03, 1.03, 5.78, 23.51, 12.87, 12.29 ms. Throughput: 5504.68 iter/sec.
Timings for 768K FFT length (44 cores, 18 workers): 9.13, 10.94, 9.14, 11.04, 10.58, 8.81, 7.38, 8.71, 6.80, 1.29, 1.06, 1.04, 1.08, 2.25, 23.90, 16.85, 13.77, 11.14 ms. Throughput: 5314.85 iter/sec.
Timings for 768K FFT length (44 cores, 19 workers): 9.73, 12.00, 9.89, 11.82, 11.97, 11.06, 11.81, 9.65, 8.85, 7.72, 1.32, 1.04, 1.04, 1.08, 2.26, 27.93, 19.96, 26.01, 11.93 ms. Throughput: 5238.40 iter/sec.
[Mon Sep 04 21:24:17 2017]
Timings for 768K FFT length (44 cores, 20 workers): 10.08, 11.93, 9.76, 11.70, 11.67, 10.79, 11.91, 9.57, 8.80, 7.82, 1.29, 1.31, 1.28, 1.28, 1.28, 3.36, 24.79, 20.41, 24.89, 12.13 ms. Throughput: 5374.93 iter/sec.
Timings for 768K FFT length (44 cores, 21 workers): 11.13, 12.51, 10.25, 12.50, 12.73, 11.42, 12.53, 10.56, 12.15, 11.33, 11.51, 1.29, 1.30, 1.28, 1.31, 1.30, 3.08, 27.08, 21.52, 27.24, 21.65 ms. Throughput: 5292.37 iter/sec.
Timings for 768K FFT length (44 cores, 22 workers): 11.33, 14.11, 11.34, 14.12, 13.46, 14.34, 11.05, 14.44, 11.74, 14.41, 11.48, 1.29, 1.28, 1.28, 1.32, 1.28, 3.10, 24.64, 26.45, 25.47, 24.45, 24.39 ms. Throughput: 5262.63 iter/sec.
Timings for 768K FFT length (44 cores, 23 workers): 20.96, 20.67, 14.52, 11.59, 15.02, 13.27, 14.95, 11.72, 14.86, 11.97, 14.44, 12.01, 1.30, 1.31, 1.29, 1.31, 1.28, 2.76, 26.39, 26.59, 25.48, 25.69, 25.73 ms. Throughput: 5255.06 iter/sec.
Timings for 768K FFT length (44 cores, 24 workers): 21.10, 20.72, 16.41, 12.86, 15.01, 13.50, 15.22, 11.45, 14.13, 11.66, 14.76, 12.91, 1.72, 1.68, 1.70, 1.70, 1.33, 1.31, 2.85, 20.07, 25.83, 25.51, 27.56, 24.83 ms. Throughput: 5255.51 iter/sec.
Timings for 768K FFT length (44 cores, 25 workers): 21.40, 21.16, 23.47, 20.74, 11.21, 15.58, 13.36, 15.13, 11.88, 15.16, 12.14, 14.88, 12.03, 1.75, 1.68, 1.73, 1.69, 1.31, 1.31, 2.96, 68.50, 25.92, 26.56, 25.58, 25.60 ms. Throughput: 5235.85 iter/sec.
Timings for 768K FFT length (44 cores, 26 workers): 22.15, 22.73, 23.03, 20.52, 10.87, 15.27, 12.71, 15.19, 11.98, 14.67, 12.10, 15.38, 11.90, 1.72, 1.70, 1.71, 1.76, 1.71, 1.74, 1.73, 31.72, 72.09, 26.83, 25.53, 26.05, 24.66 ms. Throughput: 5127.47 iter/sec.
Timings for 768K FFT length (44 cores, 27 workers): 22.90, 23.37, 24.12, 21.75, 22.53, 22.31, 16.32, 13.50, 15.67, 12.34, 15.42, 12.97, 15.84, 13.07, 1.76, 1.71, 1.72, 1.71, 1.71, 1.73, 1.73, 29.77, 90.48, 26.35, 26.64, 26.71, 25.85 ms. Throughput: 5079.03 iter/sec.
Timings for 768K FFT length (44 cores, 28 workers): 22.90, 23.20, 25.67, 22.66, 23.62, 24.76, 11.94, 18.29, 16.96, 15.72, 15.78, 12.64, 18.34, 14.08, 1.73, 1.70, 1.72, 1.73, 1.72, 1.73, 1.72, 30.18, 76.01, 67.85, 29.41, 23.02, 27.84, 20.17 ms. Throughput: 5072.69 iter/sec.
Timings for 768K FFT length (44 cores, 29 workers): 23.48, 23.97, 26.25, 23.06, 24.01, 26.16, 23.10, 24.80, 18.42, 18.63, 16.46, 16.43, 12.90, 15.71, 13.83, 1.74, 1.70, 1.72, 1.72, 1.72, 1.73, 1.72, 28.57, 78.92, 72.75, 28.85, 23.63, 28.07, 28.85 ms. Throughput: 5045.01 iter/sec.
Timings for 768K FFT length (44 cores, 30 workers): 22.86, 26.50, 23.35, 23.90, 26.64, 23.38, 24.05, 25.56, 13.80, 16.20, 19.06, 16.90, 18.56, 18.00, 16.48, 3.15, 1.92, 1.96, 1.91, 1.91, 1.94, 1.92, 3.58, 73.93, 75.90, 79.85, 33.12, 22.25, 27.35, 23.18 ms. Throughput: 4647.13 iter/sec.
Timings for 768K FFT length (44 cores, 31 workers): 24.11, 27.63, 24.16, 24.22, 28.05, 24.12, 24.48, 27.83, 24.55, 27.31, 18.82, 18.65, 17.15, 18.85, 17.91, 16.44, 3.09, 1.88, 1.92, 1.86, 1.88, 1.90, 1.84, 3.42, 76.44, 79.76, 84.61, 29.08, 22.20, 27.60, 23.36 ms. Throughput: 4729.01 iter/sec.
Timings for 768K FFT length (44 cores, 32 workers): 23.88, 27.45, 23.68, 24.15, 27.45, 23.89, 24.58, 27.73, 25.08, 27.78, 19.02, 19.25, 16.52, 19.24, 17.98, 16.68, 4.04, 3.96, 3.94, 4.02, 2.15, 2.16, 2.17, 2.13, 5.16, 83.16, 74.77, 81.89, 27.65, 22.77, 27.89, 23.88 ms. Throughput: 3974.81 iter/sec.
Timings for 768K FFT length (44 cores, 33 workers): 24.05, 27.70, 24.51, 24.66, 28.55, 23.91, 25.15, 28.20, 25.17, 27.97, 27.61, 24.07, 18.56, 16.98, 19.34, 18.39, 16.88, 4.06, 3.90, 3.79, 3.94, 2.12, 2.11, 2.14, 2.14, 5.38, 78.16, 75.37, 79.91, 73.59, 24.23, 27.31, 25.37 ms. Throughput: 3999.14 iter/sec.
Timings for 768K FFT length (44 cores, 34 workers): 24.10, 28.12, 24.48, 24.80, 28.45, 24.16, 25.34, 28.70, 25.33, 28.19, 28.20, 24.13, 18.48, 16.98, 19.26, 19.66, 17.72, 5.58, 5.16, 5.22, 5.39, 5.27, 5.17, 5.22, 2.77, 2.73, 7.44, 75.97, 77.67, 78.98, 71.16, 24.63, 27.48, 23.20 ms. Throughput: 3092.19 iter/sec.
Timings for 768K FFT length (44 cores, 35 workers): 24.18, 27.97, 24.44, 24.85, 28.71, 24.29, 24.97, 28.81, 25.39, 28.67, 28.17, 24.61, 25.34, 26.56, 13.39, 17.84, 18.26, 17.05, 5.65, 5.49, 5.41, 5.63, 5.62, 5.41, 5.45, 2.82, 2.77, 7.52, 74.45, 74.94, 78.00, 77.26, 70.71, 33.06, 24.49 ms. Throughput: 3035.21 iter/sec.
Timings for 768K FFT length (44 cores, 36 workers): 24.21, 27.86, 24.34, 24.85, 27.77, 24.27, 25.24, 28.86, 25.65, 27.72, 28.45, 24.92, 25.48, 26.60, 13.13, 18.64, 18.70, 17.12, 7.57, 7.32, 7.42, 7.42, 7.43, 7.36, 7.39, 7.45, 7.37, 7.45, 9.55, 76.21, 76.10, 81.25, 78.00, 69.21, 29.73, 23.38 ms. Throughput: 2373.73 iter/sec.
Timings for 768K FFT length (44 cores, 37 workers): 24.66, 28.72, 25.18, 25.55, 28.63, 25.16, 25.51, 29.65, 25.96, 29.27, 29.90, 25.60, 25.74, 27.99, 25.69, 26.14, 19.53, 19.33, 18.96, 7.56, 7.17, 7.26, 7.41, 7.32, 7.19, 7.47, 7.24, 7.26, 7.20, 10.02, 79.29, 77.16, 81.23, 79.64, 80.13, 29.17, 22.48 ms. Throughput: 2364.58 iter/sec.
Timings for 768K FFT length (44 cores, 38 workers): 33.32, 27.67, 33.44, 27.58, 29.93, 25.14, 25.73, 29.48, 26.42, 29.86, 29.74, 25.69, 26.46, 28.15, 25.82, 25.97, 19.97, 19.97, 18.68, 8.54, 7.57, 7.61, 7.74, 7.62, 7.62, 7.86, 7.67, 7.68, 7.67, 8.29, 59.76, 57.36, 76.88, 86.00, 77.02, 78.68, 29.81, 22.93 ms. Throughput: 2298.98 iter/sec.
Timings for 768K FFT length (44 cores, 39 workers): 33.07, 27.91, 32.61, 27.44, 30.24, 25.08, 25.79, 30.00, 26.83, 30.94, 29.11, 25.97, 26.04, 28.57, 25.83, 26.31, 28.58, 25.13, 20.22, 18.47, 7.99, 7.65, 7.62, 7.86, 7.79, 7.66, 7.71, 7.71, 7.67, 7.56, 8.20, 60.23, 60.17, 78.51, 79.35, 78.34, 76.64, 71.38, 23.01 ms. Throughput: 2308.42 iter/sec.
Timings for 768K FFT length (44 cores, 40 workers): 33.01, 28.44, 33.09, 27.47, 33.22, 27.58, 32.76, 29.25, 33.69, 32.78, 29.76, 25.93, 26.17, 28.93, 26.07, 26.24, 28.27, 25.33, 20.06, 18.08, 8.55, 7.38, 7.50, 7.79, 7.49, 7.45, 7.41, 7.48, 7.40, 7.51, 7.78, 65.32, 60.11, 59.69, 59.37, 70.56, 74.12, 75.61, 71.33, 24.04 ms. Throughput: 2334.18 iter/sec.
Timings for 768K FFT length (44 cores, 41 workers): 33.62, 29.09, 32.65, 27.69, 33.28, 27.91, 32.25, 29.05, 32.96, 34.35, 30.40, 26.22, 26.66, 28.77, 25.89, 26.78, 29.62, 26.13, 27.05, 28.42, 14.11, 8.26, 7.42, 7.42, 7.72, 7.42, 7.40, 7.48, 7.42, 7.37, 7.36, 7.81, 62.35, 63.32, 63.93, 64.45, 71.67, 73.76, 77.24, 75.94, 68.43 ms. Throughput: 2345.27 iter/sec.
Timings for 768K FFT length (44 cores, 42 workers): 33.17, 28.12, 33.39, 27.76, 33.81, 27.91, 32.44, 28.97, 32.44, 34.34, 33.33, 28.50, 33.12, 27.71, 32.72, 29.33, 29.35, 26.27, 26.41, 28.21, 14.35, 8.30, 7.50, 7.83, 7.67, 7.56, 7.58, 7.47, 7.55, 7.42, 7.47, 7.86, 63.49, 59.91, 60.50, 63.54, 77.30, 65.28, 60.30, 60.25, 78.95, 68.73 ms. Throughput: 2325.06 iter/sec.
Timings for 768K FFT length (44 cores, 43 workers): 34.15, 29.08, 33.76, 28.34, 36.04, 28.70, 33.01, 30.01, 33.58, 35.23, 34.85, 29.13, 33.21, 28.57, 33.17, 29.88, 30.56, 26.82, 27.38, 29.70, 26.88, 27.75, 8.07, 7.37, 7.37, 7.58, 7.49, 7.37, 7.38, 7.47, 7.43, 7.32, 8.36, 64.92, 63.62, 61.73, 65.74, 77.99, 62.58, 65.09, 64.93, 77.40, 77.44 ms. Throughput: 2322.72 iter/sec.
Timings for 768K FFT length (44 cores, 44 workers): 34.29, 28.87, 33.07, 28.04, 33.71, 28.26, 32.88, 29.64, 34.39, 33.12, 34.71, 29.48, 33.18, 29.81, 33.22, 28.89, 33.40, 29.00, 33.15, 28.44, 33.65, 29.39, 7.98, 7.57, 7.59, 7.74, 7.80, 7.58, 7.59, 7.67, 7.65, 7.49, 7.92, 65.53, 63.79, 62.91, 64.54, 68.98, 63.91, 64.46, 63.55, 64.85, 64.47, 64.63 ms. Throughput: 2304.43 iter/sec.
Týmu by následně mohl pomoci k lepším výsledkům a třeba právě toto nás posune i o nějakou tu příčku výše.