Skip to content

CP013: Create a pseudo list of properties/queries (P1795) #108

@AerialMantis

Description

@AerialMantis

One aspect of the feedback from SG1 on P1795r1 at Belfast was that we need to demonstrate how the abstract topology discovery interface proposed would work in practice, and provide some examples of how properties of the system topology could be used generically within applications.

I think one of the first steps in this is to identify the potential abstract properties or queries that could be expressed generically, i.e. not pertaining to any particular kind of processor or system component.

So far I have the following list:

  • Type of resource, i.e. execution, memory, network_io
  • Parent-child connections between resources to identify hierarchy relationships.
  • Processor-memory connections between resources to identify memory access capabilities.
  • Processor-io connections between resources to identify external capabilities such as network ports.
  • Available concurrency at a particular point in a hierarchy, i.e. the number of concurrent threads of execution available to that resource.
  • Support for SIMD execution and the available SIMD ABIs and widths.
  • Hardware concurrency (mapped to the existing function of the same name).
  • Hardware constructive interference size (mapped to the existing function of the same name).
  • Hardware destructive interference size (mapped to the existing function of the same name).
  • Prefered bulk execution shape.
  • Maximum bulk execution shape.
  • Method of bulk execution work batching.
  • Prefered size for bulk execution work batching.
  • Relative latency of accessing different memory resources from different execution resources.
  • Support for pinned/shared memory between execution resources.
  • Support for exceptions.

We don't need to propose all of these properties now, but we can prepare a pseudo list of properties or queries for expositional purposes to demonstrate how algorithms could take advantage of this interface.

Metadata

Metadata

Assignees

Labels

REM20ISO C++ meeting (remote) 2020

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions