Adaptyst sprints #6 and #7: summary

Featured image based on the one from Magnific

Please accept our apologies for a delay in publishing a new development blog post.

The sixth and seventh Adaptyst sprints at CERN were carried out on 13-26 August 2026 and 27 August – 11 September 2026 respectively. The latter period was extended by 2 days to accommodate the vacation of the Adaptyst main R&D person in the week of 14 September.

The following public issues were scheduled to be performed (the order here may not reflect the actual one):

Additionally, 1 CERN-internal issue was scheduled across both sprints: its status can be checked by authorised users.

Unless indicated otherwise, the deliverables of all tasks shown below either are already in the dev branch of corresponding repositories or will be there soon. No new development release of Adaptyst has been published yet: there will be a separate blog post announcing this.

Make a new TUI (terminal user interface)

Introduced in sprint #5, the first version of the TUI was finalised and reviewed by a human developer. As shown in the figure below, the new interface makes it possible to inspect all performance analysis and workflow execution information in real time, increasing the usefulness of Adaptyst for interactive uses. The old interface is still available for non-interactive purposes (such as batch scripts) via the --batch CLI flag.

Add semi-automatic generation of code region names

To make region labelling easier in multi-threaded/multi-process workflows, the strict requirement of having unique region names in an entire program was removed in favour of a semi-automatic naming mechanism: when two threads/processes A and B happen to share a region with the same name “X”, its actual labels will be “X” and “X<suffix>”, where “<suffix>” is automatically picked by Adaptyst so that no duplicates are made. The suffix is assigned on a per-thread basis, starting with the chronologically-second thread/process starting “X” in a workflow. At the same time, all occurrences of “X” within a single thread/process are merged as before.

This change doesn’t require any code updates of Adaptyst modules, but analysed workflows using code regionisation will have to be adjusted accordingly: the documentation will be available when the next development release of Adaptyst is published.

Solve lock contention / too large communication overhead problem in Adaptyst API methods

When code regionisation was being implemented in Adaptyst, we made a decision to use a bi-directional IPC pipe for exchanging Adaptyst-API-related messages between a profiled workflow and Adaptyst. Unfortunately, when testing the tool recently with a larger multi-threaded application, we realised that this approach didn’t scale well: there was either lock contention when multiple threads attempted to use the pipe simultaneously or out-of-space issues with the kernel IPC buffer when a large amount of data was attempted to be sent to Adaptyst.

Because this resulted in a significant Adaptyst API overhead interfering with an analysed workflow, the message exchange mechanism was overhauled in sprint #7: a new method utilising several dynamically-allocated shared memory blocks was implemented, significantly decreasing the Adaptyst API impact on the performance of a profiled workflow in case of heavy API usage.

Fix nvgpu bugs leading to inaccurate results

As the section title suggests, the nvgpu module produced inaccurate CUDA API timing results due to various bugs related to processing information from NVIDIA CUPTI. This became especially apparent when testing Adaptyst with a larger real-world CUDA application. The bugs were fixed in sprint #7.

Fix group label formatting in canvas-timeline

The canvas-timeline JavaScript library didn’t support proper group label formatting (such as making parts of the label bold) due to a wrong assumption made by AI that it would be used only for displaying threads/processes inside the linuxperf Adaptyst Analyser module. This issue was unfortunately overlooked during the human review, but it is fixed now: <b> and <font color="..."> HTML tags can be used if custom formatting is needed.

Move from patched “perf” to in-house equivalent

Due to other more urgent work, this task had to be unfortunately postponed again. It still remains high-priority and will form part of the subsequent sprint(s).

Next sprint

Sprint #8 will exceptionally start on Monday 21 September 2026 and last until Wednesday 7 October 2026. This is due to the vacation of the Adaptyst main R&D person in the week of 14 September. The sprint can be followed via the usual channels.