gallantlab / himalaya

Multiple-target linear models - CPU/GPU
https://gallantlab.github.io/himalaya
BSD 3-Clause "New" or "Revised" License
78 stars 13 forks source link

Reduce computing time of examples on CPU #30

Closed mvdoc closed 2 years ago

mvdoc commented 2 years ago

It takes ~ 90 minutes for the examples to run on a CPU. If we want to run the examples only on release to updated the docs, I guess it's fine. However, I would like to run the docs at every push since they act as an extra set of smoke tests. Can we try to reduce the computation time (fewer iterations, fewer parameters?)?

These are the timings:

computation time summary:
    - ../examples/multiple_kernel_ridge/plot_mkr_2_solvers.py:             2484.90 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_5_refine_results.py:      2417.29 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_1_sklearn_api.py:          207.52 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_0_random_search.py:        148.94 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_3_path.py:                  73.34 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_4_refit_from_deltas.py:      2.98 sec   0.0 MB
    - ../examples/kernel_ridge/plot_kernel_ridge_cv.py:                       0.03 sec   0.0 MB
    - ../examples/kernel_ridge/plot_kernel_ridge.py:                          0.03 sec   0.0 MB
    - ../examples/kernel_ridge/plot_model_on_gpu.py.py:                       0.01 sec   0.0 MB
TomDLT commented 2 years ago

Good point, I will take a look.

For reference, with a good GPU:

computation time summary:
    - ../examples/multiple_kernel_ridge/plot_mkr_1_sklearn_api.py:         30.02 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_0_random_search.py:       29.15 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_2_solvers.py:             16.16 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_3_path.py:                14.81 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_5_refine_results.py:      13.35 sec   0.0 MB
    - ../examples/kernel_ridge/plot_model_on_gpu.py.py:                     0.40 sec   0.0 MB
    - ../examples/multiple_kernel_ridge/plot_mkr_4_refit_from_deltas.py:    0.34 sec   0.0 MB
    - ../examples/kernel_ridge/plot_kernel_ridge_cv.py:                     0.03 sec   0.0 MB
    - ../examples/kernel_ridge/plot_kernel_ridge.py:                        0.01 sec   0.0 MB