Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some micro-optimizations of the trajectory iterators #2279

Merged
merged 5 commits into from
Aug 11, 2019

Conversation

pleroy
Copy link
Member

@pleroy pleroy commented Aug 11, 2019

This speeds up the apsides/nodes computations by 8-16%, and will benefit all the code that iterates over discrete trajectories. Contributes to solving #2261.

Before:

Run on (4 X 3310 MHz CPU s)
CPU Caches:
  L1 Data 32K (x4)
  L1 Instruction 32K (x4)
  L2 Unified 262K (x4)
  L3 Unified 6291K (x1)
------------------------------------------------------------------------------
Benchmark                                       Time           CPU Iterations
------------------------------------------------------------------------------
ApsidesBenchmark/ComputeApsides         198228715 ns  197061641 ns        212
ApsidesBenchmark/ComputeApsides         198536061 ns  197944665 ns        212
ApsidesBenchmark/ComputeApsides         198661021 ns  197797494 ns        212
ApsidesBenchmark/ComputeApsides_mean    198475266 ns  197601267 ns          3
ApsidesBenchmark/ComputeApsides_median  198536061 ns  197797494 ns          3
ApsidesBenchmark/ComputeApsides_stddev     222473 ns     473088 ns          3
ApsidesBenchmark/ComputeNodes           116951906 ns  116201299 ns        361
ApsidesBenchmark/ComputeNodes           116936454 ns  116590221 ns        361
ApsidesBenchmark/ComputeNodes           117827473 ns  117324852 ns        361
ApsidesBenchmark/ComputeNodes_mean      117238611 ns  116705457 ns          3
ApsidesBenchmark/ComputeNodes_median    116951906 ns  116590221 ns          3
ApsidesBenchmark/ComputeNodes_stddev       510028 ns     570572 ns          3

After:

Run on (4 X 3310 MHz CPU s)
CPU Caches:
  L1 Data 32K (x4)
  L1 Instruction 32K (x4)
  L2 Unified 262K (x4)
  L3 Unified 6291K (x1)
------------------------------------------------------------------------------
Benchmark                                       Time           CPU Iterations
------------------------------------------------------------------------------
ApsidesBenchmark/ComputeApsides         183527862 ns  182588997 ns        230
ApsidesBenchmark/ComputeApsides         182827937 ns  181096813 ns        230
ApsidesBenchmark/ComputeApsides         182881180 ns  182114211 ns        230
ApsidesBenchmark/ComputeApsides_mean    183078993 ns  181933340 ns          3
ApsidesBenchmark/ComputeApsides_median  182881180 ns  182114211 ns          3
ApsidesBenchmark/ComputeApsides_stddev     389642 ns     762357 ns          3
ApsidesBenchmark/ComputeNodes            98583813 ns   98130840 ns        427
ApsidesBenchmark/ComputeNodes            98651381 ns   97948169 ns        427
ApsidesBenchmark/ComputeNodes            98514366 ns   97984703 ns        427
ApsidesBenchmark/ComputeNodes_mean       98583186 ns   98021237 ns          3
ApsidesBenchmark/ComputeNodes_median     98583813 ns   97984703 ns          3
ApsidesBenchmark/ComputeNodes_stddev        68509 ns      96660 ns          3

@eggrobin eggrobin added the LGTM label Aug 11, 2019
@pleroy pleroy merged commit 83abdcc into mockingbirdnest:master Aug 11, 2019
pleroy added a commit that referenced this pull request Aug 12, 2019
Avoid a unbounded behavior introduced in #2279
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants