Releases: score-p/scorep_binding_python
v4.0.0 performance improvements
What's Changed
- The python Instrumenters does now also apply try_region_[begin|end] and are therefore faster
- The backend requires now c++17 as
string_viewis used a lot to avoid string copies (therefore 4.0.0) - Implement cTrace and cProfile for python 2.7
- Update ci
- move to setuptools
Full Changelog: v3.4.0...v4.0.0
Release v3.4.0: various improvements
- Instrumenter file, to allow user and selective instrumentation without changing any files
- Some updates to the Benchmarks
- Remove Onlne Access (OA) Interface
- The OA-Interface is no longer enabled per default in Score-P and deprecated
- Add decorators for selective instrumentation
- Check for access to TMP dir, as some HPC-Systems might forbid executing from
/tmpin some cases. - Add
force_finalizeto finalise a trace- Please note: adding events to a finalised trace is unsupported
- Add
reregister_exit_handlerin case Score-P's exit handlers have been overwritten - Performance optimisations
- Check if a region is already known before asking for any strings
- cTrace/cProfile only
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
withstatement) 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_PRELOADinfrastructure - allow the user to specify the Score-P flags to use
- the build, i.e. for
pip installis 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
- ...