Skip to content

Test double split operations #105

@eleon

Description

@eleon

Create a program in tests to test the following scenarios. Let's say we have a dual socket node with 2 GPUs per socket. We also have four MPI tasks.

Scenario A:

  • Split user scope at NUMA boundaries resulting in two NUMA scopes:
    qv_scope_split_at(ctx, base_scope, QV_HW_OBJ_NUMANODE, rank%nnumas, &numa_scope);
    
    Two tasks are assigned to NUMA 0's resources and two tasks are assigned to NUMA 1's resources.
  • Split each of the NUMA scopes (two tasks per scope) to get exclusive cores per task:
    ntasks_per_numa = qv_scope_ntasks(numa_scope);
    qv_scope_split(ctx, numa_scope, ntasks_per_numa, rank%ntasks_per_numa, &sub_scope);
    

Scenario B (assumes #104 resolved):

  • Split user scope at GPU boundaries resulting in four NUMA scopes:
    qv_scope_split_at(ctx, base_scope, QV_HW_OBJ_GPU, rank%ngpus, &gpu_scope);
    
    This should result in four different GPU scopes. Each scope should have one GPU and cores that are not shared with other GPU scopes. For example, there would be two GPU scopes associated with NUMA 0, the first would have half of the cores in this NUMA domain and the second would have the other half of the cores.

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