Skip to content

Clean up TopologyBuilder interface#495

Merged
nathanwbrei merged 15 commits into
masterfrom
nbrei_gpu
Apr 28, 2026
Merged

Clean up TopologyBuilder interface#495
nathanwbrei merged 15 commits into
masterfrom
nbrei_gpu

Conversation

@nathanwbrei
Copy link
Copy Markdown
Collaborator

My latest GPU offloading work is using custom topologies, which were never made part of the "public-facing" interface. This PR significantly improves the code quality of JTopologyBuilder, making it fit for public consumption, and laying the groundwork for defining custom topologies in the wiring file.

  • Adds the long-awaited parameters: max_inflight_runs, max_inflight_timeslices, etc
  • Fixes a long-standing problem where the user would have to manually size any queues and pools, rather than the capacity automatically propagating from max_inflight_events/etc.
  • Adds automatic wiring validation via a JEventLevel annotation to every Port on every JArrow
  • Adds a separate integration_tests binary for end-to-end testing, e.g. of custom topologies. Eventually a number of longer-running tests will be moved from unit-tests to here.
  • Renames all member functions living under Topology/ to CamelCase, to be consistent with the rest of the JANA2 API.
  • Fixes the missing encapsulation for JTopologyBuilder, and substantially reduces the amount of JANA2 knowledge necessary to use custom topologies
  • Arrow ports can now be connected to queues and pools using only string identifiers, making it easy to represent in the wiring file

@nathanwbrei nathanwbrei added this to the v2026.03 milestone Apr 28, 2026
@nathanwbrei nathanwbrei merged commit 109d8a2 into master Apr 28, 2026
16 checks passed
@nathanwbrei nathanwbrei deleted the nbrei_gpu branch April 28, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant