Skip to content

Instantly share code, notes, and snippets.

@pnkfelix
Created March 13, 2013 21:46
Show Gist options
  • Save pnkfelix/5156629 to your computer and use it in GitHub Desktop.
Save pnkfelix/5156629 to your computer and use it in GitHub Desktop.
ParJS nbody on a variety of input sizes: 1K, 1.5K, 2K, ..., 8K, 8.5K
Driving Code (put at bottom of nbody.js):
-----------------------------------------
for (var k=1; k < 9; k++) {
benchmark("NBODY_"+k+"K", 1, DEFAULT_MEASURE,
function () { emulateNBody("seq", k*1000, TICKS); },
function () { emulateNBody("par", k*1000, TICKS); });
benchmark("NBODY_"+k+".5K", 1, DEFAULT_MEASURE,
function () { emulateNBody("seq", k*1000+500, TICKS); },
function () { emulateNBody("par", k*1000+500, TICKS); });
}
Summary:
--------
NBODY_1K IMPROVEMENT : 34%
NBODY_1.5K IMPROVEMENT : 55%
NBODY_2K IMPROVEMENT : 50%
NBODY_2.5K IMPROVEMENT : 58%
NBODY_3K IMPROVEMENT : 57%
NBODY_3.5K IMPROVEMENT : 57%
NBODY_4K IMPROVEMENT : 66%
NBODY_4.5K IMPROVEMENT : 38%
NBODY_5K IMPROVEMENT : 46%
NBODY_5.5K IMPROVEMENT : -31%
NBODY_6K IMPROVEMENT : 18%
NBODY_6.5K IMPROVEMENT : -59%
NBODY_7K IMPROVEMENT : -12%
NBODY_7.5K IMPROVEMENT : -12%
NBODY_8K IMPROVEMENT : -38%
NBODY_8.5K IMPROVEMENT : -32%
Actual Output:
--------------
% ../../../objdir-opt-js/js -e 'var libdir="./"; var MODE="compare";' nbody.js
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_1K SEQUENTIAL MEASUREMENT 0: 164
NBODY_1K SEQUENTIAL MEASUREMENT 1: 169
NBODY_1K SEQUENTIAL MEASUREMENT 2: 163
NBODY_1K SEQUENTIAL AVERAGE: 165.33333333333334
NBODY_1K PARALLEL MEASUREMENT 0: 123
NBODY_1K PARALLEL MEASUREMENT 1: 145
NBODY_1K PARALLEL MEASUREMENT 2: 55
NBODY_1K PARALLEL AVERAGE : 107.66666666666667
NBODY_1K SEQ/PAR RATIO : 1.5356037151702786
NBODY_1K PAR/SEQ RATIO : 0.6512096774193549
NBODY_1K IMPROVEMENT : 34%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_1.5K SEQUENTIAL MEASUREMENT 0: 371
NBODY_1.5K SEQUENTIAL MEASUREMENT 1: 379
NBODY_1.5K SEQUENTIAL MEASUREMENT 2: 368
NBODY_1.5K SEQUENTIAL AVERAGE: 372.6666666666667
NBODY_1.5K PARALLEL MEASUREMENT 0: 205
NBODY_1.5K PARALLEL MEASUREMENT 1: 148
NBODY_1.5K PARALLEL MEASUREMENT 2: 147
NBODY_1.5K PARALLEL AVERAGE : 166.66666666666666
NBODY_1.5K SEQ/PAR RATIO : 2.236
NBODY_1.5K PAR/SEQ RATIO : 0.44722719141323786
NBODY_1.5K IMPROVEMENT : 55%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_2K SEQUENTIAL MEASUREMENT 0: 656
NBODY_2K SEQUENTIAL MEASUREMENT 1: 654
NBODY_2K SEQUENTIAL MEASUREMENT 2: 674
NBODY_2K SEQUENTIAL AVERAGE: 661.3333333333334
NBODY_2K PARALLEL MEASUREMENT 0: 352
NBODY_2K PARALLEL MEASUREMENT 1: 369
NBODY_2K PARALLEL MEASUREMENT 2: 261
NBODY_2K PARALLEL AVERAGE : 327.3333333333333
NBODY_2K SEQ/PAR RATIO : 2.020366598778004
NBODY_2K PAR/SEQ RATIO : 0.49495967741935476
NBODY_2K IMPROVEMENT : 50%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_2.5K SEQUENTIAL MEASUREMENT 0: 1020
NBODY_2.5K SEQUENTIAL MEASUREMENT 1: 1014
NBODY_2.5K SEQUENTIAL MEASUREMENT 2: 1030
NBODY_2.5K SEQUENTIAL AVERAGE: 1021.3333333333334
NBODY_2.5K PARALLEL MEASUREMENT 0: 405
NBODY_2.5K PARALLEL MEASUREMENT 1: 545
NBODY_2.5K PARALLEL MEASUREMENT 2: 318
NBODY_2.5K PARALLEL AVERAGE : 422.6666666666667
NBODY_2.5K SEQ/PAR RATIO : 2.416403785488959
NBODY_2.5K PAR/SEQ RATIO : 0.41383812010443866
NBODY_2.5K IMPROVEMENT : 58%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_3K SEQUENTIAL MEASUREMENT 0: 1321
NBODY_3K SEQUENTIAL MEASUREMENT 1: 1326
NBODY_3K SEQUENTIAL MEASUREMENT 2: 1361
NBODY_3K SEQUENTIAL AVERAGE: 1336
NBODY_3K PARALLEL MEASUREMENT 0: 861
NBODY_3K PARALLEL MEASUREMENT 1: 423
NBODY_3K PARALLEL MEASUREMENT 2: 433
NBODY_3K PARALLEL AVERAGE : 572.3333333333334
NBODY_3K SEQ/PAR RATIO : 2.3343040186371575
NBODY_3K PAR/SEQ RATIO : 0.4283932135728543
NBODY_3K IMPROVEMENT : 57%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_3.5K SEQUENTIAL MEASUREMENT 0: 1817
NBODY_3.5K SEQUENTIAL MEASUREMENT 1: 1812
NBODY_3.5K SEQUENTIAL MEASUREMENT 2: 1831
NBODY_3.5K SEQUENTIAL AVERAGE: 1820
NBODY_3.5K PARALLEL MEASUREMENT 0: 817
NBODY_3.5K PARALLEL MEASUREMENT 1: 564
NBODY_3.5K PARALLEL MEASUREMENT 2: 946
NBODY_3.5K PARALLEL AVERAGE : 775.6666666666666
NBODY_3.5K SEQ/PAR RATIO : 2.346368715083799
NBODY_3.5K PAR/SEQ RATIO : 0.4261904761904762
NBODY_3.5K IMPROVEMENT : 57%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_4K SEQUENTIAL MEASUREMENT 0: 2486
NBODY_4K SEQUENTIAL MEASUREMENT 1: 2481
NBODY_4K SEQUENTIAL MEASUREMENT 2: 2438
NBODY_4K SEQUENTIAL AVERAGE: 2468.3333333333335
NBODY_4K PARALLEL MEASUREMENT 0: 836
NBODY_4K PARALLEL MEASUREMENT 1: 834
NBODY_4K PARALLEL MEASUREMENT 2: 823
NBODY_4K PARALLEL AVERAGE : 831
NBODY_4K SEQ/PAR RATIO : 2.9703168872843966
NBODY_4K PAR/SEQ RATIO : 0.33666441593517893
NBODY_4K IMPROVEMENT : 66%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_4.5K SEQUENTIAL MEASUREMENT 0: 3070
NBODY_4.5K SEQUENTIAL MEASUREMENT 1: 3048
NBODY_4.5K SEQUENTIAL MEASUREMENT 2: 3047
NBODY_4.5K SEQUENTIAL AVERAGE: 3055
NBODY_4.5K PARALLEL MEASUREMENT 0: 2962
NBODY_4.5K PARALLEL MEASUREMENT 1: 1490
NBODY_4.5K PARALLEL MEASUREMENT 2: 1175
NBODY_4.5K PARALLEL AVERAGE : 1875.6666666666667
NBODY_4.5K SEQ/PAR RATIO : 1.628754220721521
NBODY_4.5K PAR/SEQ RATIO : 0.6139661756683034
NBODY_4.5K IMPROVEMENT : 38%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_5K SEQUENTIAL MEASUREMENT 0: 3939
NBODY_5K SEQUENTIAL MEASUREMENT 1: 3896
NBODY_5K SEQUENTIAL MEASUREMENT 2: 3778
NBODY_5K SEQUENTIAL AVERAGE: 3871
NBODY_5K PARALLEL MEASUREMENT 0: 1450
NBODY_5K PARALLEL MEASUREMENT 1: 3323
NBODY_5K PARALLEL MEASUREMENT 2: 1411
NBODY_5K PARALLEL AVERAGE : 2061.3333333333335
NBODY_5K SEQ/PAR RATIO : 1.8779107373868045
NBODY_5K PAR/SEQ RATIO : 0.5325066735554982
NBODY_5K IMPROVEMENT : 46%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_5.5K SEQUENTIAL MEASUREMENT 0: 4548
NBODY_5.5K SEQUENTIAL MEASUREMENT 1: 4606
NBODY_5.5K SEQUENTIAL MEASUREMENT 2: 4720
NBODY_5.5K SEQUENTIAL AVERAGE: 4624.666666666667
NBODY_5.5K PARALLEL MEASUREMENT 0: 2552
NBODY_5.5K PARALLEL MEASUREMENT 1: 9311
NBODY_5.5K PARALLEL MEASUREMENT 2: 6361
NBODY_5.5K PARALLEL AVERAGE : 6074.666666666667
NBODY_5.5K SEQ/PAR RATIO : 0.7613037752414399
NBODY_5.5K PAR/SEQ RATIO : 1.3135361107106818
NBODY_5.5K IMPROVEMENT : -31%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_6K SEQUENTIAL MEASUREMENT 0: 5407
NBODY_6K SEQUENTIAL MEASUREMENT 1: 5429
NBODY_6K SEQUENTIAL MEASUREMENT 2: 5419
NBODY_6K SEQUENTIAL AVERAGE: 5418.333333333333
NBODY_6K PARALLEL MEASUREMENT 0: 4562
NBODY_6K PARALLEL MEASUREMENT 1: 4477
NBODY_6K PARALLEL MEASUREMENT 2: 4226
NBODY_6K PARALLEL AVERAGE : 4421.666666666667
NBODY_6K SEQ/PAR RATIO : 1.2254052016584998
NBODY_6K PAR/SEQ RATIO : 0.8160565979698555
NBODY_6K IMPROVEMENT : 18%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_6.5K SEQUENTIAL MEASUREMENT 0: 6363
NBODY_6.5K SEQUENTIAL MEASUREMENT 1: 6412
NBODY_6.5K SEQUENTIAL MEASUREMENT 2: 6356
NBODY_6.5K SEQUENTIAL AVERAGE: 6377
NBODY_6.5K PARALLEL MEASUREMENT 0: 9587
NBODY_6.5K PARALLEL MEASUREMENT 1: 11534
NBODY_6.5K PARALLEL MEASUREMENT 2: 9403
NBODY_6.5K PARALLEL AVERAGE : 10174.666666666666
NBODY_6.5K SEQ/PAR RATIO : 0.6267527191717993
NBODY_6.5K PAR/SEQ RATIO : 1.595525586744028
NBODY_6.5K IMPROVEMENT : -59%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_7K SEQUENTIAL MEASUREMENT 0: 7366
NBODY_7K SEQUENTIAL MEASUREMENT 1: 7415
NBODY_7K SEQUENTIAL MEASUREMENT 2: 7384
NBODY_7K SEQUENTIAL AVERAGE: 7388.333333333333
NBODY_7K PARALLEL MEASUREMENT 0: 7095
NBODY_7K PARALLEL MEASUREMENT 1: 8973
NBODY_7K PARALLEL MEASUREMENT 2: 8854
NBODY_7K PARALLEL AVERAGE : 8307.333333333334
NBODY_7K SEQ/PAR RATIO : 0.8893748495305351
NBODY_7K PAR/SEQ RATIO : 1.1243852921272277
NBODY_7K IMPROVEMENT : -12%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_7.5K SEQUENTIAL MEASUREMENT 0: 8503
NBODY_7.5K SEQUENTIAL MEASUREMENT 1: 8567
NBODY_7.5K SEQUENTIAL MEASUREMENT 2: 8494
NBODY_7.5K SEQUENTIAL AVERAGE: 8521.333333333334
NBODY_7.5K PARALLEL MEASUREMENT 0: 11518
NBODY_7.5K PARALLEL MEASUREMENT 1: 11472
NBODY_7.5K PARALLEL MEASUREMENT 2: 5786
NBODY_7.5K PARALLEL AVERAGE : 9592
NBODY_7.5K SEQ/PAR RATIO : 0.8883792048929664
NBODY_7.5K PAR/SEQ RATIO : 1.125645438898451
NBODY_7.5K IMPROVEMENT : -12%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_8K SEQUENTIAL MEASUREMENT 0: 9433
NBODY_8K SEQUENTIAL MEASUREMENT 1: 9409
NBODY_8K SEQUENTIAL MEASUREMENT 2: 9440
NBODY_8K SEQUENTIAL AVERAGE: 9427.333333333334
NBODY_8K PARALLEL MEASUREMENT 0: 13019
NBODY_8K PARALLEL MEASUREMENT 1: 9129
NBODY_8K PARALLEL MEASUREMENT 2: 17158
NBODY_8K PARALLEL AVERAGE : 13102
NBODY_8K SEQ/PAR RATIO : 0.7195339133974458
NBODY_8K PAR/SEQ RATIO : 1.389788558093487
NBODY_8K IMPROVEMENT : -38%
Warming up sequential runs
.
Measuring sequential runs
Measuring parallel runs
Checking correctness
NBODY_8.5K SEQUENTIAL MEASUREMENT 0: 10670
NBODY_8.5K SEQUENTIAL MEASUREMENT 1: 10540
NBODY_8.5K SEQUENTIAL MEASUREMENT 2: 10574
NBODY_8.5K SEQUENTIAL AVERAGE: 10594.666666666666
NBODY_8.5K PARALLEL MEASUREMENT 0: 24019
NBODY_8.5K PARALLEL MEASUREMENT 1: 9241
NBODY_8.5K PARALLEL MEASUREMENT 2: 9003
NBODY_8.5K PARALLEL AVERAGE : 14087.666666666666
NBODY_8.5K SEQ/PAR RATIO : 0.7520526228616047
NBODY_8.5K PAR/SEQ RATIO : 1.3296941857538385
NBODY_8.5K IMPROVEMENT : -32%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment