hpc / quo-vadis

A cross-stack coordination layer to dynamically map runtime components to hardware resources
BSD 3-Clause "New" or "Revised" License
7 stars 4 forks source link

Update Device Split Semantics #104

Open eleon opened 2 months ago

eleon commented 2 months ago

Assume the following scenario:

Note that the n cores are shared in both scopes. Trying to split the sub-scopes over the tasks to get exclusive cores is not possible because we cannot apply a collective split operation over different sub-scopes.

This issue can be addressed by maintaining a list of exclusive resources associated with each device (e.g., cpuset). In this case, GPU 0 would have half of the cores in its resource list and GPU 1 would have the other half of the cores in its list. With such internal distribution of resources, the call to qv_scope_split_at above would result in the following two sub-scopes:

  1. GPU 0 and n/2 cores
  2. GPU 1 and the other n/2 cores

At this point there is no need for an additional split operation to get exclusive cores associated with a GPU scope.