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

[SARC-378+SARC-353] RGU: fichiers de mapping GPU->Billing, déplacement des fichiers dans la DB, et gestion simultanée RGU + GPU billing #137

Closed
wants to merge 12 commits into from

Conversation

notoraptor
Copy link
Contributor

Hello @nurbal ! Voici une PR pour mettre les RGUs dans la base de données.

Cette PR inclut aussi la prise en charge de l'évolutivité des RGUs, donc je ferme en même temps la précédente PR #136 .

…eries_rgu(). Instead use client function get_available_clusters().
- load_job_series
- update_job_series_rgu
- compute_cost_and_waste
- compute_time_frames

cluster_name: str
rgu_start_date: datetime
gpu_to_rgu: Dict[str, float]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On pourrait changer ici pour mettre plutôt une version de RGU à utiliser, version qui réfère à IGUANE. Il faudrait quand même un dictionnaire pour le mapping billing -> 1 RGU, qu'on pourrait appeler rgu_billing_ratio ou qqc dans le genre. On a besoin de ça car le billing n'est pas toujours billing=100 -> 1 RGU. Par exemple, pendant un certain temps on avait billing=175 -> 1 RGU sur Narval.

…ed files.

- Use IGUANE (packaged-version from a fork) to compute RGUs at runtime.
- Use cached files to manage GPU billings.
- Add `sarc acquire gpubillings` to import GPU billings from cached file to SARC database.
- Rewrite function `update_job_series_rgu` to handle both RGU and GPU billing.
- Add a script to extract GPU billings from slurm configuration files.
@notoraptor notoraptor changed the title [SARC-378] déplacer le billing RGU dans la db [SARC-378+SARC-353] RGU: fichiers de mapping GPU->Billing, déplacement des fichiers dans la DB, et gestion simultanée RGU + GPU billing Oct 28, 2024
@notoraptor
Copy link
Contributor Author

@bouthilx @nurbal PR à jour ! Grosse mise à jour qui revoit de fond en comble la gestion des RGUs, avec prise en charge simultanée des RGUs et des GPU billings:

  • les RGUs sont calculés au runtime en important IGUANE. Pour le moment, le dépôt IGUANE n'est pas packageable car il ne contient ni setup.py ni pyproject.toml, donc, en attendant, j'ai forké le dépôt, ajouté un fichier pyproject.toml, et utilisé un tag sur ce fork pour installer IGUANE.
  • les GPU billings sont donc différents des RGUs (pour un GPU donné, on a son nombre de RGU d'une part, et son coût unitaire GPU d'autre part, et le billing des jobs est donc un multiple de ce coût unitaire). Ils sont gérés avec des fichiers en cache, importables dans la DB via un nouveau script sarc acquire gpubillings.
  • La fonction update_job_series_rgu se sert des deux métriques (RGU et GPU billing) pour mettre à jour allocated.gres_gpu et calculer deux colonnes supplémentaires allocated.gres_rgu et allocated.gpu_type_rgu

Qu'en pensez-vous?

@notoraptor
Copy link
Contributor Author

Pour le moment, je ferme cette PR-ci, puisqu'on va la découper en PRs plus petites (cf. #138 pour la prochaine à reviewer)

@notoraptor notoraptor closed this Nov 5, 2024
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.

2 participants