Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Harmonize gres across clusters #115

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

satyaog
Copy link
Member

@satyaog satyaog commented Mar 27, 2024

No description provided.

@satyaog satyaog force-pushed the feature/uniform_gres branch 10 times, most recently from e2ca33f to a199b6b Compare March 28, 2024 13:27
@bouthilx
Copy link
Member

C'est pourquoi le filelock?

@satyaog satyaog marked this pull request as ready for review April 2, 2024 13:36
@satyaog
Copy link
Member Author

satyaog commented Apr 2, 2024

C'était dans une tentative de résoudre le problème des tests qui fails de temps en temps. Je me disais qu'avec le multi-process il y avait peut-être un problème avec les ports qui se faisait parfois assigner 2 fois pour deux instances différentes. Mais c'était seulement des tests, il n'y en a plus maintenant dans cette branche

@bouthilx
Copy link
Member

bouthilx commented Apr 2, 2024

Oups, le ticket mentionnait seulement le problème pour les format gpu:nom:nombre. Il y a aussi un mismatch avec la façon d'afficher les noms entre node_gpu_mapping et les données de prometheus.

Voici un exemple des noms qu'on peut trouver dans la dernière année:

[
    'NVIDIA A100-SXM4-40GB', 'gpu:v100:8', 'Quadro RTX 8000',
    'Tesla V100-SXM2-16GB', 'Tesla V100-SXM2-32GB',
    'NVIDIA A100-SXM4-80GB', 'Tesla V100-SXM2-32GB-LS', 'gpu:v100l:4',
    'gpu:p100:4', 'NVIDIA A100 80GB PCIe', 'gpu:p100l:4', 'gpu:p100:2',
    'gpu:t4:4', 'gpu:v100:6', 'a100', 'NVIDIA RTX A6000', '3g.40gb',
    '2g.20gb', '4g.40gb'
]

Idéallement, on voudrait que v100 soit remplacé par une description plus précise tel que Tesla V100-SXM2-16GB. Dans le cas de Cedar, le mapping va être différent selon les noeuds, car il y a des GPUs avec différente quantité de RAM.

Il y a aussi les '3g.40gb', '2g.20gb', '4g.40gb' qui sont problématique car ça ne dit pas le type de GPU sur lequel est la tranche MIG. Ça devrait peut-être être un ticket à part. 🤔

@satyaog
Copy link
Member Author

satyaog commented Apr 2, 2024

Ah je comprends mieux maintenant merci! J'avais regarder la base de donnée de dev mais il n'y avait que des infos sur graham. J'ai complètement oublié de redemander s'il était possible d'avoir une version à jour de la db de test pour vraiment vérifier les valeurs

config/sarc-dev.json Outdated Show resolved Hide resolved
config/sarc-dev.json Outdated Show resolved Hide resolved
config/sarc-dev.json Outdated Show resolved Hide resolved
config/sarc-dev.json Show resolved Hide resolved
@satyaog satyaog force-pushed the feature/uniform_gres branch 2 times, most recently from cc1118b to f4a0030 Compare April 3, 2024 20:26
@satyaog
Copy link
Member Author

satyaog commented Apr 3, 2024

The great part of the logic should be good but for the details I think I will need an updated dev db to list the available gpu data we have there. I'll let you decide if this should be merged or not before that

config/sarc-dev.json Outdated Show resolved Hide resolved
@satyaog
Copy link
Member Author

satyaog commented Apr 10, 2024

I have very weird results with the updated sarc-bc dev database. For the mila cluster (I haven't verify the other clusters as there's way too many nodes), there seams to be a the cross-over for the type of gpus assigned with nodes that don't seam to match the cluster architecture :

mila	4g.40gb			cn-a001	
mila	NVIDIA A100-SXM4-80GB	cn-a001	
mila	Quadro RTX 8000		cn-a001	
mila	Quadro RTX 8000		cn-c015	cn-c023	cn-c025	cn-c028	cn-g021	cn-g022	cn-g023	cn-g024	
mila	Tesla V100-SXM2-32GB	cn-a004
mila	Tesla V100-SXM2-32GB	cn-b001	cn-g004	
mila	Tesla V100-SXM2-32GB	cn-b001	cn-d001	cn-g017	cn-g018	cn-g022	cn-g023	cn-g024	cn-g026	
mila	Tesla V100-SXM2-32GB-LS	cn-b001	

The aggregation I made was :

db.getCollection('jobs').aggregate(
  [
    {
      $match: {
        'allocated.gpu_type': { $ne: null }
      }
    },
    {
      $group: {
        _id: {
          cluster: '$cluster_name',
          gres: '$allocated.gpu_type',
          nodes: '$nodes'
        }
      }
    },
    {
      $sort: {
        '_id.cluster': 1,
        '_id.gres': 1,
        '_id.nodes': 1
      }
    }
  ],
  { maxTimeMS: 60000, allowDiskUse: true }
);

Did I made my query wrong or am I missing something?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants