Releases: score-p/scorep_binding_python
use our own abspath function
- Fix an exception that might occur during the shutdown of a process.
We have only seen this in some multiprocessing use cases, so no need to worry.
cProfile as default when available and PyPy support
We choose to enable the cProfile instrumenter as the default instrumenter when available, e.g. currently only using CPython 3.
However, during the change, we decided to modify the build and initialisation process a bit. As a result, we can now support PyPy using the traditional Python instrumenters. With minor modifications to scorep/instrumenter.py:has_c_instrumenter()
, it might be possible to extend the support to other Python instrumenters as well, but that is not supported.
CInstrumenters
There have been a lot of updates since the last release. However, the most important updates are:
- Support C backend for tracing
- Not enabled by default
- Only Python 3
- Huge reduction of instrumentation overhead
- Context managers can now be coupled with a User Region
- New test system (pytest)
Decorators
The Score-P Python bindings do now support decorators to user Instrument functions. Together with the introduction of Decorators, some internal interfaces have been changed.
Other improvements are:
- The Instrumenter now remembers its initial state
- The LD_PRELOAD variable is emptied after Score-P is successfully initialised (Important if the python script starts another program)
- OPARI (OpenMP) compatibility was improved
- A fundamental performance benchmark was added
- Various bugfixes
Score-P 6.0 and Context Managers
This release is drafted due to the release of Score-P 6.0. It introduces the notion of instrumenters
, which care about the interface between Score-P and Python. Different instrumenters are available. Other changes are:
- Introduce python context managers (used in the
with
statement) for user regions as well as enabling and disabling the instrumenter - Use the sys.setprofile for the default instrumenter (should speed up the tracing)
- Allow to "unregister" the instrumenter to disable the recording of python calls (unregistering reduces the overhead)
- Add a dummy instrumenter (allows to leave user instrumentation in the code, even if no Score-P is loaded, it does nothing)
- Add rewind support
- Update the CI to bionic
python2 compiant again
The python bindings are now Python 2 complaint again. Moreover, a CI system with testing is now in place.
The first Release
A lot has changed since the first Version. A few things are:
- use the Score-P
LD_PRELOAD
infrastructure - allow the user to specify the Score-P flags to use
- the build, i.e. for
pip install
is simpler - use only user instrumentation is possible again (by setting
--no-python
) - grouping is now part of Score-P 5.0 and used to group modules
- ...