Skip to content

Scopes for P and E cores on hybrid chips (e.g. Alder Lake) #73

@andreapiacentini

Description

@andreapiacentini

As a summary of a mail exchange:

On 13/02/2024 10:08, Andrea Piacentini wrote:

Hi Sam.
You can see, for instance, the hwloc documentation chapter on "Topology Attributes: Distances, Memory Attributes and CPU Kinds
":
https://www.open-mpi.org/projects/hwloc/doc/v2.8.0/a00366.php
It states that not all the linux flavours provide efficiency information and therefore in some cases the information comes from heuristics.

Strictly speaking the efficiency does not define a topological level, rather an attribute of some elements at the same level.
Yet I can easily think of an application targeting the computational tasks on the P cores subset and some service tasks (I/O, whatever) to the E cores.

By which syntax and which underlying implementation could Quo or Quo-Vadis help this targeting ?

Cheers
Andrea

On 13/02/2024 18:07, Gutierrez, Samuel K. wrote:

Hi Andrea,

Thank you.

I would have to think about this some more. That said, Quo probably can't right now. Quo-Vadis could by way of our use of hints, but it currently doesn't. If you're interested, please open an issue on the Quo-Vadis side so we don't lose track of this.

Thank you,

Sam

On 14/02/2024 03:12, Leon Borja, Edgar wrote:

Greetings, Andrea,

Adding to Sam’s response, Quo Vadis could support this use case via the ‘hint’ parameter of the ‘qv_scope_create’ call. The hints could look like:
QV_SCOPE_CREATE_E_CORE
QV_SCOPE_CREATE_P_CORE

For example:
qv_scope_create(ctx, input_scope, QV_HW_OBJ_CORE, ncores, QV_SCOPE_CREATE_E_CORE, &output_scope);

Hwloc would need to add the appropriate attributes to the cores, so that QV knows which cores are energy-efficiency-driven vs. performance-driven.

As Sam mentioned, if you add a GitHub issue, we will not forget :)

Thanks for bringing this up!
Edgar

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions