Skip to content

Instantly share code, notes, and snippets.

@SteveBronder
Created September 23, 2020 02:59
Show Gist options
  • Save SteveBronder/423b97b4de21202c1d61f32bc3c403df to your computer and use it in GitHub Desktop.
Save SteveBronder/423b97b4de21202c1d61f32bc3c403df to your computer and use it in GitHub Desktop.
benchmark size grain time cpu iteration
exp_ParMap_var 128 16 17651 26609 39833
exp_ParMap_var 256 16 26033 44690 26965
exp_ParMap_var 512 16 36565 82138 18701
exp_ParMap_var 1024 16 56113 128538 12465
exp_ParMap_var 2048 16 75671 221892 9356
exp_ParMap_var 4096 16 105999 395385 6540
exp_ParMap_var 8192 16 166110 731292 4309
exp_ParMap_var 16384 16 329069 1457103 2147
exp_ParMap_var 32768 16 570971 2736153 1249
exp_ParMap_var 65536 16 925550 5086303 776
exp_ParMap_var 128384 16 1608569 9859224 420
exp_ParMap_var 128 32 16916 24720 41217
exp_ParMap_var 256 32 24394 40764 28617
exp_ParMap_var 512 32 34744 76725 20096
exp_ParMap_var 1024 32 54749 124919 12767
exp_ParMap_var 2048 32 77118 219827 9502
exp_ParMap_var 4096 32 108865 396592 6550
exp_ParMap_var 8192 32 165063 732866 4348
exp_ParMap_var 16384 32 325593 1472218 2113
exp_ParMap_var 32768 32 554324 2802080 1267
exp_ParMap_var 65536 32 924905 5413626 769
exp_ParMap_var 128384 32 1668128 10043160 446
exp_ParMap_var 128 64 15741 21088 44294
exp_ParMap_var 256 64 25448 39655 27446
exp_ParMap_var 512 64 36169 75399 19330
exp_ParMap_var 1024 64 56357 125350 12242
exp_ParMap_var 2048 64 74692 216569 9406
exp_ParMap_var 4096 64 105438 388441 6483
exp_ParMap_var 8192 64 161433 723549 4365
exp_ParMap_var 16384 64 325044 1469104 2140
exp_ParMap_var 32768 64 552162 2812924 1275
exp_ParMap_var 65536 64 902195 5351068 785
exp_ParMap_var 128384 64 1580707 9944656 445
exp_ParMap_var 128 128 8905 11001 78657
exp_ParMap_var 256 128 26431 36772 26369
exp_ParMap_var 512 128 40684 74214 17812
exp_ParMap_var 1024 128 59244 123144 11964
exp_ParMap_var 2048 128 76117 210282 9232
exp_ParMap_var 4096 128 107576 381928 6581
exp_ParMap_var 8192 128 163881 714277 4386
exp_ParMap_var 16384 128 326330 1462095 2182
exp_ParMap_var 32768 128 554876 2808550 1270
exp_ParMap_var 65536 128 931888 5343229 668
exp_ParMap_var 128384 128 1560309 9925221 450
exp_ParMap_var 128 256 8920 11022 76358
exp_ParMap_var 256 256 17668 21812 39733
exp_ParMap_var 512 256 46145 70545 15181
exp_ParMap_var 1024 256 66247 124640 10472
exp_ParMap_var 2048 256 85119 213378 8190
exp_ParMap_var 4096 256 108445 371989 6483
exp_ParMap_var 8192 256 160691 692884 4362
exp_ParMap_var 16384 256 318954 1425531 2174
exp_ParMap_var 32768 256 546697 2760487 1293
exp_ParMap_var 65536 256 945154 5351346 758
exp_ParMap_var 128384 256 1670636 9983483 441
exp_ParMap_var 128 512 8912 11008 78462
exp_ParMap_var 256 512 17639 21776 39735
exp_ParMap_var 512 512 35199 43361 19910
exp_ParMap_var 1024 512 82721 125642 8411
exp_ParMap_var 2048 512 101197 215559 6916
exp_ParMap_var 4096 512 124412 376171 5664
exp_ParMap_var 8192 512 162792 673977 4300
exp_ParMap_var 16384 512 319751 1400536 2226
exp_ParMap_var 32768 512 549123 2693364 1299
exp_ParMap_var 65536 512 935531 5274184 775
exp_ParMap_var 128384 512 1581736 9839422 442
exp_ParMap_var 128 1024 8918 11013 78264
exp_ParMap_var 256 1024 17657 21790 39721
exp_ParMap_var 512 1024 35224 43388 19867
exp_ParMap_var 1024 1024 70318 86565 9983
exp_ParMap_var 2048 1024 141486 224089 4932
exp_ParMap_var 4096 1024 166519 404730 4217
exp_ParMap_var 8192 1024 209386 744996 3313
exp_ParMap_var 16384 1024 329306 1401318 2109
exp_ParMap_var 32768 1024 562384 2739540 1278
exp_ParMap_var 65536 1024 991955 5276641 601
exp_ParMap_var 128384 1024 1572541 9750075 443
exp_ParMap_var 128 2048 8924 11026 78395
exp_ParMap_var 256 2048 17684 21827 39699
exp_ParMap_var 512 2048 35270 43440 19872
exp_ParMap_var 1024 2048 70204 86439 9968
exp_ParMap_var 2048 2048 140565 173026 4979
exp_ParMap_var 4096 2048 244611 411506 2845
exp_ParMap_var 8192 2048 294459 772200 2343
exp_ParMap_var 16384 2048 424254 1489902 1644
exp_ParMap_var 32768 2048 642222 2800487 1086
exp_ParMap_var 65536 2048 1037897 5418404 677
exp_ParMap_var 128384 2048 1604530 9773157 434
exp_ParMap_var 128 4096 8897 10989 78799
exp_ParMap_var 256 4096 17619 21751 39757
exp_ParMap_var 512 4096 35189 43347 19890
exp_ParMap_var 1024 4096 70079 86289 9915
exp_ParMap_var 2048 4096 139929 172285 4997
exp_ParMap_var 4096 4096 279878 344552 2504
exp_ParMap_var 8192 4096 448774 795916 1553
exp_ParMap_var 16384 4096 604422 1624708 1212
exp_ParMap_var 32768 4096 850859 3063021 654
exp_ParMap_var 65536 4096 1187604 5174444 587
exp_ParMap_var 128384 4096 1683857 9907485 417
exp_ParMap_dbl 128 16 10222 10196 68312
exp_ParMap_dbl 256 16 12988 12957 54741
exp_ParMap_dbl 512 16 14869 14861 47229
exp_ParMap_dbl 1024 16 18226 18225 38799
exp_ParMap_dbl 2048 16 23466 23465 29665
exp_ParMap_dbl 4096 16 31283 31282 22295
exp_ParMap_dbl 8192 16 43511 43509 16094
exp_ParMap_dbl 16384 16 61804 61806 10977
exp_ParMap_dbl 32768 16 96290 96292 6975
exp_ParMap_dbl 65536 16 158276 158273 4429
exp_ParMap_dbl 128384 16 266931 266932 2647
exp_ParMap_dbl 128 32 9093 9071 81483
exp_ParMap_dbl 256 32 11588 11567 59832
exp_ParMap_dbl 512 32 14268 14242 49001
exp_ParMap_dbl 1024 32 16165 16150 43142
exp_ParMap_dbl 2048 32 21046 21045 33445
exp_ParMap_dbl 4096 32 27908 27899 24269
exp_ParMap_dbl 8192 32 39127 39125 17545
exp_ParMap_dbl 16384 32 56710 56711 11217
exp_ParMap_dbl 32768 32 89637 89638 7671
exp_ParMap_dbl 65536 32 152663 152655 4447
exp_ParMap_dbl 128384 32 265017 265022 2678
exp_ParMap_dbl 128 64 7786 7784 89008
exp_ParMap_dbl 256 64 10838 10824 64390
exp_ParMap_dbl 512 64 13733 13733 51254
exp_ParMap_dbl 1024 64 17035 17013 40486
exp_ParMap_dbl 2048 64 19181 19182 36136
exp_ParMap_dbl 4096 64 25558 25559 27046
exp_ParMap_dbl 8192 64 36675 36675 19118
exp_ParMap_dbl 16384 64 53571 53543 12848
exp_ParMap_dbl 32768 64 86125 86108 8105
exp_ParMap_dbl 65536 64 147161 147132 4756
exp_ParMap_dbl 128384 64 257236 257187 2656
exp_ParMap_dbl 128 128 4018 4017 173453
exp_ParMap_dbl 256 128 11607 11593 60290
exp_ParMap_dbl 512 128 14521 14511 47647
exp_ParMap_dbl 1024 128 17893 17889 39543
exp_ParMap_dbl 2048 128 21641 21606 31650
exp_ParMap_dbl 4096 128 25450 25451 27813
exp_ParMap_dbl 8192 128 35184 35185 19045
exp_ParMap_dbl 16384 128 51760 51754 13213
exp_ParMap_dbl 32768 128 83275 83276 8137
exp_ParMap_dbl 65536 128 145942 145938 4742
exp_ParMap_dbl 128384 128 254474 254316 2775
exp_ParMap_dbl 128 256 3969 3969 172759
exp_ParMap_dbl 256 256 7821 7821 89019
exp_ParMap_dbl 512 256 17869 17861 40415
exp_ParMap_dbl 1024 256 21841 21836 31776
exp_ParMap_dbl 2048 256 26076 26043 26897
exp_ParMap_dbl 4096 256 30237 30213 23050
exp_ParMap_dbl 8192 256 37917 37916 18063
exp_ParMap_dbl 16384 256 52582 52578 12952
exp_ParMap_dbl 32768 256 83423 83424 8347
exp_ParMap_dbl 65536 256 146781 146766 4774
exp_ParMap_dbl 128384 256 254439 254411 2767
exp_ParMap_dbl 128 512 3799 3799 188840
exp_ParMap_dbl 256 512 7787 7787 90076
exp_ParMap_dbl 512 512 15408 15408 44972
exp_ParMap_dbl 1024 512 32134 32130 22155
exp_ParMap_dbl 2048 512 36912 36904 18877
exp_ParMap_dbl 4096 512 41896 41863 16981
exp_ParMap_dbl 8192 512 47385 47386 15138
exp_ParMap_dbl 16384 512 60903 60892 11660
exp_ParMap_dbl 32768 512 89341 89331 7636
exp_ParMap_dbl 65536 512 149089 149090 4761
exp_ParMap_dbl 128384 512 260382 260334 2716
exp_ParMap_dbl 128 1024 3479 3479 175307
exp_ParMap_dbl 256 1024 7781 7780 87527
exp_ParMap_dbl 512 1024 15746 15747 45709
exp_ParMap_dbl 1024 1024 31777 31775 21846
exp_ParMap_dbl 2048 1024 58953 58952 11820
exp_ParMap_dbl 4096 1024 64424 64421 10777
exp_ParMap_dbl 8192 1024 68829 68817 10142
exp_ParMap_dbl 16384 1024 74130 74132 9275
exp_ParMap_dbl 32768 1024 94424 94392 7219
exp_ParMap_dbl 65536 1024 156277 156280 4086
exp_ParMap_dbl 128384 1024 261910 261876 2659
exp_ParMap_dbl 128 2048 4022 4022 180974
exp_ParMap_dbl 256 2048 7588 7587 91446
exp_ParMap_dbl 512 2048 15631 15631 43910
exp_ParMap_dbl 1024 2048 30923 30918 22415
exp_ParMap_dbl 2048 2048 61979 61967 11211
exp_ParMap_dbl 4096 2048 114770 114757 6180
exp_ParMap_dbl 8192 2048 121229 121186 5721
exp_ParMap_dbl 16384 2048 128491 128479 5452
exp_ParMap_dbl 32768 2048 138163 138143 4988
exp_ParMap_dbl 65536 2048 157893 157789 4337
exp_ParMap_dbl 128384 2048 257782 257769 2569
exp_ParMap_dbl 128 4096 3635 3635 169725
exp_ParMap_dbl 256 4096 8019 8019 93334
exp_ParMap_dbl 512 4096 16204 16202 45624
exp_ParMap_dbl 1024 4096 31109 31108 22085
exp_ParMap_dbl 2048 4096 61379 61373 11089
exp_ParMap_dbl 4096 4096 124549 124545 5564
exp_ParMap_dbl 8192 4096 197933 197890 3521
exp_ParMap_dbl 16384 4096 211050 211043 3249
exp_ParMap_dbl 32768 4096 230045 229983 3117
exp_ParMap_dbl 65536 4096 250151 250050 2796
exp_ParMap_dbl 128384 4096 271813 271816 2691
exp_loop_dbl 128 1 3575 3575 187965
exp_loop_dbl 256 1 7828 7828 89399
exp_loop_dbl 512 1 15554 15554 46462
exp_loop_dbl 1024 1 30946 30942 22712
exp_loop_dbl 2048 1 62454 62449 11033
exp_loop_dbl 4096 1 127878 127879 5559
exp_loop_dbl 8192 1 256135 256125 2798
exp_loop_dbl 16384 1 501083 501019 1375
exp_loop_dbl 32768 1 1004641 1004591 687
exp_loop_dbl 65536 1 2046987 2046852 348
exp_loop_dbl 128384 1 3958439 3958176 175
exp_loop_var 128 1 6474 8624 109170
exp_loop_var 256 1 13041 17221 54603
exp_loop_var 512 1 25486 33801 27686
exp_loop_var 1024 1 50616 67061 13706
exp_loop_var 2048 1 101475 134402 6936
exp_loop_var 4096 1 202713 268403 3455
exp_loop_var 8192 1 406716 538358 1705
exp_loop_var 16384 1 836901 1100098 839
exp_loop_var 32768 1 1660748 2185196 419
exp_loop_var 65536 1 3267520 4319837 214
exp_loop_var 128384 1 6776621 8840147 103
library(data.table)
library(ggplot2)
speed_dt = fread("par_benches.csv")
speed_dt[, version := "loop"]
speed_dt[grepl("par", tolower(benchmark)), version := "parallel"]
speed_dt[, data_type := "double"]
speed_dt[grepl("var", tolower(benchmark)), data_type := "var"]
speed_dt = speed_dt[grain <= 512]
speed_dt[, grain := as.factor(grain)]
speed_ex_dt = speed_dt[version != "loop"]
ggplot(speed_ex_dt, aes(x = size, y = time, color = grain)) +
geom_line() +
geom_line(data = speed_dt[version == "loop"], aes(x = size, y = time), color = "black") +
facet_wrap(~data_type, nrow = 2) +
scale_x_log10(labels = scales::unit_format(suffix = "", big.mark = ","), breaks = scales::log_breaks(15)) +
scale_y_log10(labels = scales::unit_format(suffix = "", big.mark = ","), breaks = scales::log_breaks(8)) +
ggtitle("Calling lgamma with parallel_map:\nTime is in nanoseconds. Black line is serial loop",
"parallel_map turns on for doubles around 500 and vars around 2500") +
ylab("") +
theme_bw(base_size = 20)
speed_sub_dt = speed_dt[grain %in% c(1, 64)]
speed_sub_cast_dt = dcast(speed_sub_dt[, .(size, grain, time, data_type)], formula = size + data_type ~ grain, value.var = "time")
colnames(speed_sub_cast_dt) = c("size", "data_type", "loop", "parallel")
speed_sub_cast_dt[, perf := loop/parallel]
ggplot(speed_sub_cast_dt, aes(x = size, y = perf)) +
geom_line() +
geom_hline(yintercept = 1) +
facet_wrap(~data_type, nrow = 2, scales = "free_y") +
scale_x_log10(labels = scales::unit_format(suffix = "", big.mark = ","), breaks = scales::log_breaks(15)) +
theme_bw(base_size = 18) +
ggtitle("(loop_time)/(parallel_time) performance comparison for lgamma", "Grainsize = 64, Higher is better") +
xlab("")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment