JuliaFirstOrder / ProximalAlgorithms.jl

Proximal algorithms for nonsmooth optimization in Julia
Other
130 stars 21 forks source link

Reduce allocations in PANOC, PANOCplus, ZeroFPR, DRLS #74

Closed lostella closed 2 years ago

codecov[bot] commented 2 years ago

Codecov Report

Merging #74 (5e4f5d1) into master (2d72fdd) will increase coverage by 0.27%. The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #74      +/-   ##
==========================================
+ Coverage   88.93%   89.21%   +0.27%     
==========================================
  Files          21       21              
  Lines         886      909      +23     
==========================================
+ Hits          788      811      +23     
  Misses         98       98              
Impacted Files Coverage Δ
src/algorithms/drls.jl 96.25% <100.00%> (+0.47%) :arrow_up:
src/algorithms/panoc.jl 97.82% <100.00%> (+0.12%) :arrow_up:
src/algorithms/panocplus.jl 93.82% <100.00%> (+0.32%) :arrow_up:
src/algorithms/zerofpr.jl 94.36% <100.00%> (+0.42%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 2d72fdd...5e4f5d1. Read the comment docs.

lostella commented 2 years ago

Allocations went down in benchmarks, as expected. However, there is a strange increase in allocations for DRLS, so I'll need to look deeper into it. Time increases are probably just noise.

                                       ID  time ratio memory ratio
  ––––––––––––––––––––––––––––––––––––––– ––––––––––– ––––––––––––
       ["Lasso medium (Float64)", "DRLS"]   1.01 (5%)  0.78 (1%) ✅
      ["Lasso medium (Float64)", "PANOC"]   1.02 (5%)  0.28 (1%) ✅
  ["Lasso medium (Float64)", "PANOCplus"]   0.99 (5%)  0.61 (1%) ✅
    ["Lasso medium (Float64)", "ZeroFPR"]   0.99 (5%)  0.36 (1%) ✅
        ["Lasso small (Float64)", "DRLS"]   0.98 (5%)  0.76 (1%) ✅
       ["Lasso small (Float64)", "PANOC"]   0.95 (5%)  0.31 (1%) ✅
   ["Lasso small (Float64)", "PANOCplus"]   0.97 (5%)  0.64 (1%) ✅
     ["Lasso small (Float64)", "ZeroFPR"]   0.97 (5%)  0.40 (1%) ✅
       ["Lasso tiny (Float64)", "AFBA-2"] 1.08 (5%) ❌    1.00 (1%)
         ["Lasso tiny (Float64)", "DRLS"] 1.08 (5%) ❌  1.03 (1%) ❌
        ["Lasso tiny (Float64)", "PANOC"] 0.91 (5%) ✅  0.44 (1%) ✅
    ["Lasso tiny (Float64)", "PANOCplus"] 0.92 (5%) ✅  0.65 (1%) ✅
      ["Lasso tiny (Float64)", "ZeroFPR"] 0.94 (5%) ✅  0.59 (1%) ✅
lostella commented 2 years ago

@aldma could you please confirm the changes in PANOCplus are OK?