Computational Features Guide

Numba Mode

Numba is an open source just-in-time compiler that translates a subset of Python and Numpy code into machine code, thereby significantly decreasing computation time. Numba mode is available for all findi algorithms by specifying the argument numba=True. In numba mode parallelization is automatically handled by Numba. It should be noted, however, that since Numba completely skips the Python interpreter when computing, it requires the objective function to be Numba-compiled and by extension Numba-compatible. Numerical computation functions generally are or can be made Numba-compatible, but for more information refer to Numba documentation.

Parallelization Using joblib Library

In Python mode (default, numba=False) parallelization of the evaluation of objective functions is handled by joblib library. This is generally useful in problems with high-dimensional parameter spaces or where the objective function cannot be rewritten to be Numba-compatible. Note, however, that due to overheads joblib parallelization is not beneficial for simple and computationally inexpensive objective functions.