SolverSelector is an add-in feature for large numerical softwares that improves the performance of simulations both in terms of execution time and reliability, and promotes portability across a range of computing platforms. This software feature enable numerical softwares to automatically choose the optimal solvers at runtime with minimal runtime overhead based on the evolving problem characteristics and the underlying compute platform. The optimal solver selection is based on machine learning models developed using supervised learning techniques.

SolveSelector Overview 

The brown line shows the normal application for numerical softwares. The numerical softwares call upon the underlying default solvers or the user selected solvers for the numerical sub-problems occurring during the simulation. The green line  shows the modified application with the SolverSelector feature added to the software. Instead of calling upon default solvers, the plugin module will analyze the problem characteristics and choose the solver that executes in minimal time and also provides best convergence behavior. The machine learning algorithms are trained beforehand with sample problems executed on targeted compute platforms. Feature reduction techniques are employed to identify a set of cheap-to-compute non-redundant features in order to achieve minimal runtime overhead in solver selection. The SolverSelector API abstracts the common operations for solver classification (Feature selection, updating machine algorithms using sample problems etc.) and provides their implementation. This API is leveraged to develop the SolverSelector plugins for various numerical softwares including the NEAMS toolkit.

 

The SolverSelector technology is attractive to both numerical software developers and the end users of the numerical applications. It helps the numerical developers in not choosing default solvers for characteristic problems and let the software choose the optimal solver at runtime. The end users are benefited because they do not have to experiment with various solvers for their applications, nor rely on the default solvers chosen by the developers.

This technology has several value-add features for numerical softwares including:

  1. Software indirections that enable plug-n-play adoption into various numerical softwares.
  2. Low overhead in runtime solver selection.
  3. Machine learning models trained at customer compute facilities.
  4. Multiple performance objectives including execution time, reliability, accuracy, and energy efficiency.