Release notes

Profiler (sciagraph on PyPI)

v2022.9.0 (September 26, 2022)

Features:

  • The logged message on profiling success, sciagraph.api.ReportResult, now has an attribute recording peak memory in kibibytes (peak_memory_kb). This is useful for workload characterization: you can correlate input size with peak memory.
  • Added OpenTelemetry integration, to record download instructions (and peak memory) in OpenTelemetry traces.

v2022.7.3 (July 19, 2022)

Features:

  • The celery integration now includes the task name in the job ID, for easier identification.

Bug fixes:

  • Celery integration works when SCIAGRAPH_CELERY_REPORTS_PATH is not set.

v2022.7.2 (July 19, 2022)

Bug fixes:

  • When using sciagraph.api.profile_job(), if the directory didn’t exist writing the report failed. The directory is now created on-demand if necessary.

Performance:

  • Reduced the performance overhead of profiling with Sciagraph.

v2022.7.1 (July 12, 2022)

Features:

  • Celery integration.

Bug fixes:

  • Fixed a crash in trial mode on Python 3.7.
  • Fixed an occasional crash in Rust thread startup.
  • Better handling of cases where Sciagraph code panics and is therefore safely disabled for the rest of the process life time.

v2022.7.0 (July 6, 2022)

Features:

  • You can now profile multiple jobs in a single process’ lifetime.
  • Building on the above, the MLflow integration now supports profiling across multiple runs.

v2022.6.2 (June 21, 2022)

Features:

  • You can now try out Sciagraph without signing up for an account, using the --trial flag, which limits profiling to one minute.

v2022.6.1 (June 9, 2022)

Bug fixes:

  • Fix rendering bug which hid the reversed memory and overall performance flamegraphs.

v2022.6.0 (June 7, 2022)

Features:

  • Added minimal performance profiling of non-Python threads.
  • Memory profiling now tells you the Python extension responsible for memory allocations in non-Python threads.

Bug fixes:

  • Significantly reduced performance overhead that was skewing the performance profiling results, and made sure reports take profiling overhead into account.

v2022.5.4 (May 31, 2022)

Features:

  • The performance timeline report adds the ability to zoom in.
  • It’s now possible to set the job ID from within the Python process being profiled.
  • The log message detailing job info also reports local storage path.

Bug fixes:

  • Improved rendering on non-Linux platforms.

v2022.5.3 (May 25, 2022)

  • Reports now include more information about the runtime environment (Sciagraph/Python/OS version, hostname, available CPUs).
  • Fixed report so it is no longer in HTML quirks mode.

v2022.5.2 (May 19, 2022)

  • Fixed potential deadlocks when writing out reports.

v2022.5.1 (May 16, 2022)

  • Fixed intermittent whitespace rendering problem in timeline reports when using Firefox.
  • Fixed timeline font size in Chrome.
  • Enabled resizing thread timelines in Chrome.

v2022.5.0 (May 9, 2022)

  • Made it easier to install Sciagraph with older versions of pip.
  • The profiler now runs with a little less performance overhead.
  • The report directories written by the profiler now avoid using : and + characters.

v2022.4.1 April 19, 2022

  • Added support for Python 3.7, 3.8, and 3.10; 3.9 was already supported previously.

v2022.4.0 (April 14, 2022)

  • The profiler includes a timeline visualization of thread runtime; the runtime flamegraph now combines multiple threads into a single flamegraph.

v2022.3.2 (March 29, 2022)

  • Added MLflow integration support.
  • The sciagraph.api.ReportResult now includes the local path where the report was written.
  • Fixed bug where the generated report files had a modification time of Jan 1, 1970.

Report viewer (sciagraph-report on PyPI)

v2022.4.0 (April 19, 2022)

  • Fixed Python 3.7 support.

Backend

May 9, 2022

March 28, 2022

  • Fixed bug that prevented larger reports from being downloaded.