Visible to Intel only — GUID: GUID-427BE6F9-10A2-44AD-BF9A-50DF022BA225
Visible to Intel only — GUID: GUID-427BE6F9-10A2-44AD-BF9A-50DF022BA225
Nonlinear Solver Organization and Implementation
The Intel® oneAPI Math Kernel Library solver routines for nonlinear least squares problems use reverse communication interfaces (RCI). That means you need to provide the solver with information required for the iteration process, for example, the corresponding Jacobian matrix, or values of the objective function. RCI removes the dependency of the solver on specific implementation of the operations. However, it does require that you organize a computational loop.
The nonlinear least squares problem solver routines, or Trust-Region (TR) solvers, are implemented with threading support. You can manage the threads using Threading Control Functions. The TR solvers use BLAS and LAPACK routines, and offer the same parallelism as those domains. The ?jacobi and ?jacobix routines of Jacobi matrix calculations are parallel. These routines (?jacobi and ?jacobix) make calls to the user-supplied functions with different x parameters for multiple threads.
Memory Allocation and Handles
To make the TR solver routines easy to use, you are not required to allocate temporary working storage. The solver allocates all temporary memory internally. To allow multiple users to access the solver simultaneously, the solver keeps track of the storage allocated for a particular application by using a data object called a handle. Each TR solver routine creates, uses, or deletes a handle. The handle datatype definition can be found in mkl_rci.fi (or mkl_rci.f90).
Use one of the mentioned headers (either include it or as a module) and declare the handle as:
type(HANDLE_TR) :: handle
For a program using compilers that support eight byte integers, declare a handle as:
INCLUDE "mkl_rci.fi" INTEGER*8 handle
Product and Performance Information |
---|
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201 |