-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
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:
Two tasks are assigned to NUMA 0's resources and two tasks are assigned to NUMA 1's resources.
qv_scope_split_at(ctx, base_scope, QV_HW_OBJ_NUMANODE, rank%nnumas, &numa_scope); - 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:
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.
qv_scope_split_at(ctx, base_scope, QV_HW_OBJ_GPU, rank%ngpus, &gpu_scope);
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels