Skip to content

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Mar 13, 2021

Reduce unnecessary specialization, so we only compile the benchmark itself

I haven't yet run a test-run to see how this affects Nanosoldier.jl, but the initial results are pretty drastic (master, then PR):

julia> BaseBenchmarks.loadall!();
loading group "broadcast"... done (took 1.478194316 seconds)                                                                                                 
loading group "shootout"... done (took 1.027588305 seconds)                                                                                                  
loading group "string"... done (took 0.787889261 seconds)                                                                                                    
loading group "linalg"... done (took 10.17666961 seconds)                                                                                                    
loading group "parallel"... done (took 0.026896042 seconds)                                                                                                  
loading group "find"... done (took 3.470431855 seconds)                                                                                                      
loading group "tuple"... done (took 2.614093698 seconds)                                                                                                     
loading group "union"... done (took 17.084435553 seconds)                                                                                                    
loading group "dates"... done (took 1.657814211 seconds)                                                                                                     
loading group "micro"... done (took 0.250621988 seconds)                                                                                                     
loading group "simd"... done (took 5.482584606 seconds)                                                                                                      
loading group "io"... done (took 1.860680744 seconds)                                                                                                        
loading group "random"... done (took 11.206763668 seconds)                                                                                                   
loading group "problem"... done (took 1.807225504 seconds)                                                                                                   
loading group "array"... done (took 29.548586721 seconds)                                                                                                    
loading group "misc"... done (took 2.225903344 seconds)                                                                                                      
loading group "scalar"... done (took 50.154618755 seconds)                                              
loading group "sort"... done (took 3.820836767 seconds)                                                                                                      
loading group "sparse"... done (took 14.804049721 seconds)                                                                                                   
loading group "collection"... done (took 20.840159522 seconds)

julia> @time GC.gc()                                                                                                                                         
  0.493355 seconds (99.99% gc time)
julia> BaseBenchmarks.loadall!()
loading group "broadcast"... done (took 1.3948058 seconds)                                                                                                   
loading group "shootout"... done (took 0.999646206 seconds)                   
loading group "string"... done (took 0.233158291 seconds)                                                                                                    
loading group "linalg"... done (took 3.493330808 seconds)                                                                                                    
loading group "parallel"... done (took 0.025984114 seconds)                                                                                                  
loading group "find"... done (took 1.423991282 seconds)                                                                                                      
loading group "tuple"... done (took 0.832023599 seconds)                                                                                                     
loading group "union"... done (took 3.483249186 seconds)                                                                                                     
loading group "dates"... done (took 0.176739174 seconds)                                                                                                     
loading group "micro"... done (took 0.066475817 seconds)                                                                                                     
loading group "simd"... done (took 0.415034215 seconds)                                                                                                      
loading group "io"... done (took 1.553415594 seconds)                                                                                                        
loading group "random"... done (took 2.599748973 seconds)                                                                                                    
loading group "problem"... done (took 1.320523015 seconds)                    
loading group "array"... done (took 4.86314526 seconds)                       
loading group "misc"... done (took 1.158922976 seconds)                                                                                                      
loading group "scalar"... done (took 3.981424023 seconds)                                                                                                    
loading group "sort"... done (took 0.353160891 seconds)                                                                                                      
loading group "sparse"... done (took 3.876614805 seconds)                                                                                                    
loading group "collection"... done (took 6.760269463 seconds)

julia> @time GC.gc()
  0.354923 seconds (100.00% gc time)

Reduce unnecessary specialization, so we only compile the benchmark itself
@vtjnash
Copy link
Member Author

vtjnash commented Mar 16, 2021

Initial test run of Nanosoldier (on a somewhat noisy test machine) with this PR seems to be showing substantial improvement in load and net runtime without affecting benchmark time. Will be 8 hours until the updated result with ALL finishes (don't tag a release before then or it'll mess up the comparison!): vtjnash/julia@d7da2a4

@vtjnash
Copy link
Member Author

vtjnash commented Mar 17, 2021

ALL report finished, and shows this might also be up to 25% faster end-to-end, with no regressions on any particular benchmark on this PR branch, when run against BenchmarkTools v0.6.0 (current master)

@vtjnash vtjnash merged commit a8e48df into master Mar 19, 2021
@vtjnash vtjnash deleted the jn/fast-load branch March 19, 2021 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant