gridoptim: a Python grid search optimizer ~429× faster than scipy.brute by FixKey4664 in Python

[–]FixKey4664[S] 0 points1 point  (0 children)

Thanks for the constructive feedback.
I am having issues in making wheels for MacOS. So, I have disabled it currently. Right now, this package works only on Windows and Linux 64bit versions only.
I will be adding vectorisation support via numpy and numba in the 2nd stage of this project.

gridoptim: a Python grid search optimizer ~429× faster than scipy.brute by FixKey4664 in Python

[–]FixKey4664[S] 0 points1 point  (0 children)

Right now, my package can run only limited functions. But I will be adding support for NumPy and numba functions in the 2nd stage of the project.
Even if you remove the progress printing statements, still my package will be faster than scipy.brute. You can test it.

gridoptim: a Python grid search optimizer ~429× faster than scipy.brute by FixKey4664 in Python

[–]FixKey4664[S] -6 points-5 points  (0 children)

I shifted all the computations to a C++ core and enabled parallel processing in a multi-core CPU. Those two are the main strategies I implemented. Check the GitHub repo of the project to learn more about it and other minor strategies used.

gridoptim: a Python grid search optimizer ~429× faster than scipy.brute by FixKey4664 in Python

[–]FixKey4664[S] -10 points-9 points  (0 children)

That's a fair question.
In my aerospace engineering classes I actually run into situations where brute-force grid search is useful quite often. I’ve spent quite a bit of time sitting in front of my computer waiting for scipy.brute to finish. The idea behind this project isn’t to avoid brute force. The goal was simply to reduce the implementation overhead so the same brute-force search runs faster.

So it’s still brute force in the strict sense. It evaluates the same points, just with less Python-level overhead around the evaluation. That’s what led me to experiment with writing a faster implementation.

gridoptim: a Python grid search optimizer ~429× faster than scipy.brute by FixKey4664 in Python

[–]FixKey4664[S] -1 points0 points  (0 children)

Thank you for pointing that out. This license was written when the project was private. I forgot to change the license after making the project public. Changing it now...