Skip to content
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

CP013: Introduce tags for providing abstract information about a resource (P1795) #66

Open
AerialMantis opened this issue Jul 24, 2018 · 1 comment
Assignees
Labels
REM20 ISO C++ meeting (remote) 2020

Comments

@AerialMantis
Copy link
Contributor

As discussed in #40 we need to provide a way for users to identify the type of an execution_resource.

Taken from #40:

Answering the first point, the execution_resource should be a generic execution resource type that isn't associated with any particular type of resource, however we should introduce someway of identifying what kind of resource a particular execution_resource is. A runtime approach would be favourable over a compile-time approach, firstly as many low-level APIs which provide access to a system's topology such as Hwloc, HSA and OpenCL and runtime discoverable so a compile-time interface would not be suitable for expressing this, and secondly because having a compile-time interface would mean introducing a large number of types, which would reduce or complciate the ability to store resources generically.

@AerialMantis AerialMantis added the SAN18 San Diego 2018 C++ Meeting label Jul 24, 2018
@AerialMantis
Copy link
Contributor Author

To update this issue to the current design of P1795. We intend now to represent a system topology with an abstract representation which is then traversed and interpreted by standard and domain-specific traversal policies. This allows us to avoid enumerating different kinds of resources in the C++ standard and allow C++ to adapt to future changes in the hardware.

However, in order to communicate information about resources to a traversal policy to aid in identifying the topology structure and specific kinds of resources, we could introduce a tagging mechanism, whereby an implementation or some external topology representation (#110) can attach tags to a resource which can then be queried by a traversal policy.

These tags should not be typed, instead, they should simply have an integral or string value which can be incorporated by traversal policies, but also adapted over time.

As an example, you could have string-based tags which describe a resource's type for a given topology discovery API, such as "hwloc::numa_node", "opencl::platform", etc.

@AerialMantis AerialMantis added REM20 ISO C++ meeting (remote) 2020 and removed SAN18 San Diego 2018 C++ Meeting labels May 21, 2020
@AerialMantis AerialMantis changed the title CP013: Enumerating different execution resource types CP013: Introduce tags for providing abstract information about a resource (P1795) May 21, 2020
@AerialMantis AerialMantis self-assigned this May 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
REM20 ISO C++ meeting (remote) 2020
Projects
None yet
Development

No branches or pull requests

1 participant