heyoka.py 2.0.0 #136
bluescarni
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This new release of heyoka.py focuses on several LLVM-related improvements fixes.
In-memory cache
heyoka.py now features an in-memory cache which avoids re-optimisation and re-compilation of code that was already optimised and compiled during program execution. See this tutorial for a detailed explanation and a couple of examples where this new feature leads to noticeable speedups.
Support for the SLP vectoriser
heyoka.py can now optionally take advantage of the LLVM SLP vectoriser. The vectoriser can be enabled via the boolean keyword argument
slp_vectorize
(False
by default), which can be passed to any heyoka.py function/class that uses JIT compilation (e.g., the Taylor adaptive integrators).Although the SLP vectoriser can lead to noticeable speedups in the performance of JIT-compiled code, it is disabled by default because it can considerably increase the cost of JIT compilation.
Automatic vectorisation of math functions
On recent LLVM versions, heyoka.py has gained the ability to automatically vectorise scalar calls to math functions. This includes not only math functions implemented as LLVM builtins (e.g.,
sqrt
,sin/cos
, etc.), but also external math functions from the C++ math library.This feature is automatically enabled on recent LLVM versions when SLP vectorisation is turned on and if the heyoka library was built with support for the SLEEF library.
New CR3BP model
An implementation of the circular restricted three-body problem has been added to the
model
submodule. The new model provides the non-dimensional equations of motion and the formula for the Jacobi constant.As usual, the full changelog is available here:
https://bluescarni.github.io/heyoka.py/changelog.html
This discussion was created from the release heyoka.py 2.0.0.
Beta Was this translation helpful? Give feedback.
All reactions