volesti icon indicating copy to clipboard operation
volesti copied to clipboard

Use of SIMD computation in CRHMC walk

Open iakoviid opened this issue 3 years ago • 1 comments
trafficstars

Expanding on PR #239 we use the SIMD capabilities of PackedCSparse and present a vectorized CRHMC walk. This way we can have speed up on medium to large datasets, depending on the systems architecture. Changes from #239 :

  1. Changes in CRHMC walk instead of using n-dimensional vectors we use n * simd_len-dimensional matrices. In this way we do simd_len parallel CRHMC walks without spawning additional threads.
  2. Changes in testing and benchmarking files to test the behavior of the added code.

iakoviid avatar Sep 12 '22 17:09 iakoviid

Codecov Report

Merging #245 (03a08c5) into develop (074a562) will decrease coverage by 0.15%. The diff coverage is 47.48%.

:exclamation: Current head 03a08c5 differs from pull request most recent head 1c03920. Consider uploading reports for the commit 1c03920 to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #245      +/-   ##
===========================================
- Coverage    54.67%   54.52%   -0.15%     
===========================================
  Files          107      106       -1     
  Lines         6337     6369      +32     
  Branches      2942     2958      +16     
===========================================
+ Hits          3465     3473       +8     
+ Misses         962      958       -4     
- Partials      1910     1938      +28     
Files Coverage Δ
include/preprocess/crhmc/opts.h 0.00% <ø> (ø)
include/ode_solvers/oracle_functors.hpp 28.57% <50.00%> (ø)
include/preprocess/crhmc/crhmc_input.h 80.43% <86.66%> (+4.67%) :arrow_up:
include/preprocess/crhmc/analytic_center.h 28.20% <25.00%> (+4.82%) :arrow_up:
...random_walks/crhmc/additional_units/auto_tuner.hpp 53.33% <25.00%> (+6.66%) :arrow_up:
include/preprocess/crhmc/lewis_center.h 20.93% <0.00%> (+0.93%) :arrow_up:
include/preprocess/crhmc/two_sided_barrier.h 60.93% <84.00%> (+24.93%) :arrow_up:
include/sampling/random_point_generators.hpp 72.22% <75.00%> (+2.22%) :arrow_up:
include/ode_solvers/implicit_midpoint.hpp 58.33% <37.50%> (+0.70%) :arrow_up:
...lude/preprocess/crhmc/weighted_two_sided_barrier.h 60.00% <71.42%> (+5.00%) :arrow_up:
... and 9 more

... and 9 files with indirect coverage changes

codecov[bot] avatar Sep 14 '22 20:09 codecov[bot]

@iakoviid there are some issues still in CI tests (most probably new). There is one SEGFAULT with clang-12 and an error in R tests in windows (where some psrf is NaN). Could you please check?

vissarion avatar Feb 07 '23 08:02 vissarion

I'm closing this PR since it is included in https://github.com/GeomScale/volesti/pull/286

TolisChal avatar Nov 01 '23 20:11 TolisChal