Skip to content

Comments

Add support for MDA minimize_vectors#188

Open
PardhavMaradani wants to merge 2 commits intoMDAnalysis:mainfrom
PardhavMaradani:mda-minimize-vectors
Open

Add support for MDA minimize_vectors#188
PardhavMaradani wants to merge 2 commits intoMDAnalysis:mainfrom
PardhavMaradani:mda-minimize-vectors

Conversation

@PardhavMaradani
Copy link

This PR adds support for MDAnalysis minimize_vectors as described in MDA Issue #5234. MDA PR #5235 adds the backend support for this function in MDAnalysis. Thanks

@PardhavMaradani
Copy link
Author

PardhavMaradani commented Feb 18, 2026

Hi, I am unable to figure out the build error below. Could you please help me and let me know if there is something I am missing? I was able to build this locally on my ubuntu environment, which is how I was able to run the performance tests with a working version in the referenced MDA PR #5235. Thanks

@PardhavMaradani
Copy link
Author

Hi, I am unable to figure out the build error below.

I noticed that the 'Read the Docs' build has been failing for quite some time. The rest of the tests didn't seem to run and I see the following notice for that workflow:

image

Could someone with access please re-enable this for tests to run again. Thanks

@PardhavMaradani
Copy link
Author

PardhavMaradani commented Feb 23, 2026

Here are the benchmark results comparing against mda version (serial):

Show benchmark results
(distopia) cmake-build/libdistopia$ ./bench --benchmark_filter="MinimizeVectorsBench"
2026-02-23T08:08:56+05:30
Running ./bench
Run on (8 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x4)
  L1 Instruction 32 KiB (x4)
  L2 Unified 256 KiB (x4)
  L3 Unified 8192 KiB (x1)
Load Average: 2.13, 0.95, 0.65
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
--------------------------------------------------------------------------------------------------------------------------------------
Benchmark                                                                            Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------------------------------------------------------------
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/10/0/0                   94.7 ns         94.7 ns      6775195 Per Vector=9.47334ns items_per_second=105.559M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/100/0/0                   963 ns          963 ns       717287 Per Vector=9.62792ns items_per_second=103.865M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/1000/0/0                 9700 ns         9700 ns        73683 Per Vector=9.69997ns items_per_second=103.093M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/10000/0/0               95353 ns        95353 ns         6963 Per Vector=9.53532ns items_per_second=104.873M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/100000/0/0             992317 ns       992301 ns          713 Per Vector=9.92301ns items_per_second=100.776M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/1000000/0/0          10042317 ns     10042286 ns           65 Per Vector=10.0423ns items_per_second=99.5789M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDAOrthoFloat/10000000/0/0        108277702 ns    108274283 ns            5 Per Vector=10.8274ns items_per_second=92.358M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/10/0/0                 91.4 ns         91.4 ns      7354795 Per Vector=9.14066ns items_per_second=109.401M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/100/0/0                 906 ns          906 ns       770059 Per Vector=9.06389ns items_per_second=110.328M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/1000/0/0              13134 ns        13134 ns        53279 Per Vector=13.1338ns items_per_second=76.1394M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/10000/0/0            168584 ns       168557 ns         4142 Per Vector=16.8557ns items_per_second=59.3272M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/100000/0/0          1778711 ns      1778314 ns          383 Per Vector=17.7831ns items_per_second=56.233M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/1000000/0/0        18292648 ns     18290987 ns           36 Per Vector=18.291ns items_per_second=54.6717M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDAOrthoDouble/10000000/0/0      148940372 ns    148919329 ns            5 Per Vector=14.8919ns items_per_second=67.1505M/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/10/0/0                      16.3 ns         16.2 ns     43208169 Per Vector=1.62491ns items_per_second=615.418M/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/100/0/0                     86.4 ns         86.4 ns      8070018 Per Vector=864.065ps items_per_second=1.15732G/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/1000/0/0                     717 ns          717 ns       974746 Per Vector=717.257ps items_per_second=1.3942G/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/10000/0/0                   7669 ns         7668 ns        90964 Per Vector=766.842ps items_per_second=1.30405G/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/100000/0/0                 79084 ns        79082 ns         8730 Per Vector=790.822ps items_per_second=1.26451G/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/1000000/0/0              1790784 ns      1790715 ns          404 Per Vector=1.79071ns items_per_second=558.436M/s
MinimizeVectorsBench<float>/MinimizeVectorsOrthoFloat/10000000/0/0            22845507 ns     22844969 ns           29 Per Vector=2.2845ns items_per_second=437.733M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/10/0/0                    20.7 ns         20.7 ns     35724392 Per Vector=2.07161ns items_per_second=482.716M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/100/0/0                    131 ns          131 ns      5108576 Per Vector=1.30735ns items_per_second=764.904M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/1000/0/0                  1251 ns         1251 ns       531390 Per Vector=1.25084ns items_per_second=799.465M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/10000/0/0                12605 ns        12577 ns        54701 Per Vector=1.25775ns items_per_second=795.072M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/100000/0/0              129167 ns       129166 ns         4503 Per Vector=1.29166ns items_per_second=774.2M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/1000000/0/0            4042681 ns      4041971 ns          171 Per Vector=4.04197ns items_per_second=247.404M/s
MinimizeVectorsBench<double>/MinimizeVectorsOrthoDouble/10000000/0/0          46757814 ns     46754429 ns           14 Per Vector=4.67544ns items_per_second=213.883M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/10/0/0                407 ns          407 ns      1725397 Per Vector=40.713ns items_per_second=24.5622M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/100/0/0              4028 ns         4028 ns       172412 Per Vector=40.2762ns items_per_second=24.8286M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/1000/0/0            49541 ns        49540 ns        13663 Per Vector=49.5405ns items_per_second=20.1855M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/10000/0/0          579736 ns       579721 ns         1165 Per Vector=57.9721ns items_per_second=17.2497M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/100000/0/0        5813517 ns      5813530 ns          118 Per Vector=58.1353ns items_per_second=17.2013M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/1000000/0/0      59057284 ns     59056222 ns           11 Per Vector=59.0562ns items_per_second=16.933M/s
MinimizeVectorsBench<float>/MinimizeVectorsMDATriclinicFloat/10000000/0/0    629116040 ns    629096172 ns            1 Per Vector=62.9096ns items_per_second=15.8958M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/10/0/0              388 ns          388 ns      1800398 Per Vector=38.7783ns items_per_second=25.7876M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/100/0/0            3839 ns         3839 ns       182470 Per Vector=38.3903ns items_per_second=26.0482M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/1000/0/0          51414 ns        51409 ns        13338 Per Vector=51.409ns items_per_second=19.4519M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/10000/0/0        626206 ns       626194 ns         1096 Per Vector=62.6194ns items_per_second=15.9695M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/100000/0/0      6303879 ns      6303962 ns          109 Per Vector=63.0396ns items_per_second=15.863M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/1000000/0/0    64112752 ns     64112265 ns           10 Per Vector=64.1123ns items_per_second=15.5976M/s
MinimizeVectorsBench<double>/MinimizeVectorsMDATriclinicDouble/10000000/0/0  717845553 ns    717796220 ns            1 Per Vector=71.7796ns items_per_second=13.9315M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/10/0/0                   129 ns          129 ns      5393738 Per Vector=12.9301ns items_per_second=77.3392M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/100/0/0                  796 ns          796 ns       871357 Per Vector=7.96363ns items_per_second=125.571M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/1000/0/0                7579 ns         7578 ns        92136 Per Vector=7.57812ns items_per_second=131.959M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/10000/0/0              75614 ns        75612 ns         9297 Per Vector=7.56123ns items_per_second=132.254M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/100000/0/0            816490 ns       816429 ns          918 Per Vector=8.16429ns items_per_second=122.485M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/1000000/0/0          7795943 ns      7795841 ns           87 Per Vector=7.79584ns items_per_second=128.274M/s
MinimizeVectorsBench<float>/MinimizeVectorsTriclinicFloat/10000000/0/0        82889566 ns     82888874 ns            8 Per Vector=8.28889ns items_per_second=120.643M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/10/0/0                 188 ns          188 ns      3713353 Per Vector=18.8489ns items_per_second=53.0534M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/100/0/0               1530 ns         1530 ns       456905 Per Vector=15.2972ns items_per_second=65.3715M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/1000/0/0             14748 ns        14748 ns        45064 Per Vector=14.7481ns items_per_second=67.8053M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/10000/0/0           149509 ns       149511 ns         4580 Per Vector=14.9511ns items_per_second=66.8847M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/100000/0/0         1502468 ns      1502380 ns          470 Per Vector=15.0238ns items_per_second=66.5611M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/1000000/0/0       15557782 ns     15557979 ns           44 Per Vector=15.558ns items_per_second=64.2757M/s
MinimizeVectorsBench<double>/MinimizeVectorsTriclinicDouble/10000000/0/0     183798640 ns    183800616 ns            3 Per Vector=18.3801ns items_per_second=54.4068M/s
(distopia) cmake-build/libdistopia$ 

MDAnalysis's own asv benchmark results comparing against different backends (including this version of distopia) can be found in this comment of MDAnalysis/mdanalysis#5235. Thanks

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