cesmix-mit / InteratomicPotentials.jl

Contains methods and types for a variety interatomic potentials.
MIT License
27 stars 6 forks source link

CPU Performance enhancements #43

Closed jrdegreeff closed 2 years ago

jrdegreeff commented 2 years ago

First round of performance enhancements. These changes separate the loop iteration from the core calculations and include many serial and parallel optimizations. Measured a 20x speedup for the 1000 atom lj cluster on my laptop. These changes set the stage for GPU acceleration which will come in the next PR. Also made some simplifications to the neighbor list structure which should ease transition to new neighbor list interface.

jrdegreeff commented 2 years ago

We should remove the results data. It would be interesting to setup Benchmarking reports.

Agreed. I'll add them to the .gitignore now. Separate benchmarking reports would be really cool to set up.

codecov-commenter commented 2 years ago

Codecov Report

Merging #43 (df83189) into main (b8b4315) will decrease coverage by 1.93%. The diff coverage is 97.56%.

@@             Coverage Diff             @@
##              main      #43      +/-   ##
===========================================
- Coverage   100.00%   98.06%   -1.94%     
===========================================
  Files           11       11              
  Lines          154      155       +1     
===========================================
- Hits           154      152       -2     
- Misses           0        3       +3     
Impacted Files Coverage Δ
src/types/empirical_potential.jl 94.11% <96.77%> (-5.89%) :arrow_down:
src/nnlist.jl 94.73% <100.00%> (-5.27%) :arrow_down:

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 b8b4315...df83189. Read the comment docs.