The new version brings improved
Model equations can be transformed into the postfix notation expression stacks and evaluated using:
(a) OpenMP (on general purpose processors), and
(b) OpenCL (on streaming processors and heterogeneous systems).
The new evaluation approach is in some cases up to one order of magnitude faster.
- Implemented a new approach to parallel evaluation of model equations (the Compute Stacks).
- Added Evaluator_OpenCL library and pyEvaluator_OpenCL (as external modules) and a new project to compile.sh script: evaluator_opencl
- Added daeSimulation.SetComputeStackEvaluator function
- Added AvailableOpenCLPlatforms and AvailableOpenCLDevices functions to pyEvaluator_OpenCL. They return platform/device IDs used to instantiate daeComputeStackEvaluator_OpenCL objects.
- Added daeComputeStackEvaluator_OpenCL class (OpenCL implementation for single devices), daeComputeStackEvaluator_OpenCL_multi class (for multiple devices - heterogeneous computing) which requires specification of the percentages of the total work to be performed by each device.
- Added new option evaluationMode to daetools.cfg config file (can be one of: evaluationTree_OpenMP and computeStack_OpenMP)
- Added tutorial21.py
- Changed a way of storing values of degrees of freedom in data proxy and a way of creating and storing the currently active set of equations (to support OpenCL kernels).
- Fixed bug in setting the number of threads for superlu_mt and intel_pardiso solvers.
Added new options to deatools.cfg: superlu_mt.numThreads and intel_pardiso.numThreads.
- Implemented Sundials IDA way of imposing constraints on variables (<=0, <0, >=0 and >0).
Constraints can be set in daeVariableType constructor (valueConstraint argument) and changed for individual variables using daeVariable.SetValueConstraint functions. Added tutorial 20 with two numerical examples.
- Updated User Guide.