-
Notifications
You must be signed in to change notification settings - Fork 116
[oneTBB] Add a page with constraints helpers to the spec #650
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,38 @@ | ||||||||||||||||
.. SPDX-FileCopyrightText: 2025 Intel Corporation | ||||||||||||||||
.. | ||||||||||||||||
.. SPDX-License-Identifier: CC-BY-4.0 | ||||||||||||||||
|
||||||||||||||||
========================= | ||||||||||||||||
Constrained Arena Helpers | ||||||||||||||||
========================= | ||||||||||||||||
**[constrained_arena_helpers]** | ||||||||||||||||
|
||||||||||||||||
Helper interfaces to create and manage multiple ``task_arena`` objects with constraints. | ||||||||||||||||
|
||||||||||||||||
.. code:: cpp | ||||||||||||||||
|
||||||||||||||||
// Defined in header <oneapi/tbb/task_arena.h> | ||||||||||||||||
|
||||||||||||||||
namespace oneapi { | ||||||||||||||||
namespace tbb { | ||||||||||||||||
std::vector<oneapi::tbb::task_arena> create_numa_task_arenas( | ||||||||||||||||
oneapi::tbb::task_arena::constraints other_constraints = {}, | ||||||||||||||||
unsigned reserved_slots = 0); | ||||||||||||||||
} // namespace tbb | ||||||||||||||||
} // namespace oneapi | ||||||||||||||||
|
||||||||||||||||
Functions | ||||||||||||||||
--------- | ||||||||||||||||
|
||||||||||||||||
.. cpp:function:: std::vector<oneapi::tbb::task_arena> create_numa_task_arenas(oneapi::tbb::task_arena::constraints other_constraints = {}, unsigned reserved_slots = 0) | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shorten?
Suggested change
|
||||||||||||||||
|
||||||||||||||||
Returns a ``std::vector`` of ``task_arena`` objects, each bound to a separate NUMA node. | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Make it closer to the proposed RFC?
Suggested change
|
||||||||||||||||
The number of created ``task_arena`` is equal to the number of NUMA nodes available on the system. | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shall it be less strict and, thus, more accurate?
Suggested change
|
||||||||||||||||
It optionally takes additional ``other_constraints`` argument to be applied to each created | ||||||||||||||||
``task_arena``, ignoring ``numa_id`` value. The second optional ``reserved_slots`` argument | ||||||||||||||||
allows to reserve a number of slots in each created ``task_arena`` for application threads. | ||||||||||||||||
Comment on lines
+31
to
+33
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps,
Suggested change
|
||||||||||||||||
|
||||||||||||||||
.. note:: | ||||||||||||||||
|
||||||||||||||||
If error occurs during system topology parsing, returns ``std::vector`` containing single | ||||||||||||||||
``task_arena`` object equivalent to ``task_arena(other_constraints, reserved_slots)``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps, task_arena Helpers might be more suitable as a name in case we would want to extend this page with other helpers, thus, avoiding creating a new one?