Skip to content

Commit 2bb8cff

Browse files
Merge pull request #2 from LilBabines/main
add page for how many resources ask
2 parents be2b394 + 3c30c31 commit 2bb8cff

File tree

4 files changed

+88
-5
lines changed

4 files changed

+88
-5
lines changed

_quarto-english.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ website:
5353
href: pages/serveurs/marbec_gpu/basic_example.qmd
5454
- text: "R Scripts Running"
5555
href: pages/serveurs/marbec_gpu/run_r_script.qmd
56+
- text: "Choosing Resources: CPUs / MEM / GPU"
57+
href: pages/serveurs/marbec_gpu/wich_ressource.qmd
5658
- text: "Training"
5759
href: pages/formations/index_formations.qmd
5860
contents:

_quarto-french.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ website:
5353
href: pages/serveurs/marbec_gpu/basic_example.qmd
5454
- text: "R Scripts Running"
5555
href: pages/serveurs/marbec_gpu/run_r_script.qmd
56+
- text: "Choisir les Ressources : CPUs / MEM / GPU"
57+
href: pages/serveurs/marbec_gpu/wich_ressource.qmd
5658
- text: "Formations"
5759
href: pages/formations/index_formations.qmd
5860
contents:

pages/serveurs/marbec_gpu/index_marbec_gpu.qmd

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,14 @@ Pour des instructions détaillées sur l'utilisation du cluster Marbec-GPU, veui
3434
- [Guide des Commandes Linux utiles](basic_command.qmd) (english only)
3535
- [Exécution d'un Script Basique R/Python](basic_example.qmd) (via SLURM)
3636
- [Exécution R](run_r_script.qmd) (english only)
37+
- [Choisir les Ressource : CPUs / MEM / GPU](wich_ressource.qmd)
3738

3839

3940
## Support
4041

4142
Si vous rencontrez des problèmes ou avez des questions, veillez intéragir avec le [RocketChatIRD.](https://go.rocket.chat/invite?host=tchat.ird.fr&path=invite%2Fm2mJ5W)
4243

43-
## FAQ
44+
## FAQ {#faq_french}
4445

4546
- De quelles ressources ai-je besoin d'allouer?
4647

@@ -91,16 +92,14 @@ For detailed instructions on how to use the Marbec-GPU cluster, please refer to
9192
- [Useful Linux Commands Guide](basic_command.qmd)
9293
- [Basic Script Execution](basic_example.qmd) (via SLURM)
9394
- [R Script Execution](run_r_script.qmd)
94-
95-
96-
95+
- [Choosing Resources: CPUs / MEM / GPU](wich_ressource.qmd)
9796

9897

9998
## Support
10099

101100
If you encounter any issues or have questions interact with the [RocketChatIRD.](https://go.rocket.chat/invite?host=tchat.ird.fr&path=invite%2Fm2mJ5W)
102101

103-
## FAQ
102+
## FAQ {#faq_english}
104103

105104
- **What resources do I need to allocate?**
106105

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
format:
3+
html:
4+
css: ../../../styles.css
5+
author: "[Auguste Verdier](mailto:auguste.verdier@umontpellier.fr)"
6+
date: "2025-06-25"
7+
---
8+
9+
10+
11+
::: {.content-visible when-profile="french"}
12+
# Choisir les Ressources : CPUs / MEM / GPU
13+
14+
Si vous avez suivi les guides précédents, vous avez déjà appris à soumettre un job SLURM. Maintenant, il est temps de choisir les ressources appropriées pour votre job.
15+
Le point est brièvement abordé dans le [FAD](index_marbec_gpu.qmd#faq_french).
16+
17+
18+
MARBEC-GPU est une ressource partagée avec une grande liberté d'utilisation (pas de quota d'heure de calcul ou nombre de jobs simultanés) et un ordonnancement simple : premier arrivé.e, premier servi.e. Il est donc primordial de correctement choisir les ressources allouées.
19+
20+
21+
**IMPORTANT** : Le temps d'exécution d'un job dépend de plusieurs facteurs, notamment la taille de vos données, des ressources utilisées mais principalement de la manière dont vous avez écrit votre code ou/et des packages utilisés. La plupart des codes ne permettent pas de paralléliser les calculs (utiliser plusieurs curs CPU en même) et encore moins de les exécuter sur GPU. Ainsi, quand bien même vous demandez 10 coeurs CPU et un GPU, il est tout à fait possible que votre job n'utilise qu'un seul coeur CPU et sans toucher au GPU. Ensuite, prendre deux fois plus de CPU ne diminue pas par deux le temps d'exécution, à vous de tester et de trouver un bon compromis entre ressources allouées et temps d'exécution.
22+
23+
24+
## Bonnes pratiques
25+
26+
1. Se renseigner sur le code exécuté
27+
28+
Avant d'exécuter votre job sur MARBEC-GPU, vérifiez si votre code parallélise les calculs et/ou utilise le GPU. Si vous apercevez les paramètres comme : "workers", "n_jobs", "n_cpus", "device" ou "gpu" dans la documentation, c'est un bon signe que le code peut paralléliser les calculs et/ou utiliser le GPU. Vous pouvez aussi vous rendre sur la documentation des packages utilisés (pour des packages couramment utilisés, les LLM sauront vous répondre, pour des packages ou langages niche n'hésitez pas à demander à l'auteur/autrice). Si vous ne trouvez pas ces paramètres, il est probable que le code n'utilise pas ces ressources.
29+
30+
2. Choisir les ressources allouées
31+
32+
- **CPU** : Si votre code parallélise les calculs, vous pouvez allouer plusieurs coeurs CPU. Pour des utilisations classiques en Python ou R pour du machine-learning, de l'extraction de données, etc., choisir entre 2 et 16 coeurs CPU est souvent suffisant. Pour des utilisations plus spécifiques
33+
- **MEM** : Les quantité de RAM demandée dépend principalement de la taille de vos données et/ou la taille des modèles utilisés. Pour des utilisations classiques, entre 8 et 64 Go de RAM est souvent suffisant. Pour des traitements de données plus lourds, vous pouvez aller jusqu'à 256 Go de RAM.
34+
- **GPU** : Si votre code utilise le GPU, vous pouvez allouer 1 GPU.
35+
36+
3. Vérifier l'utilisation des ressources
37+
38+
Une allocation parfaite est une allocation où **100% des ressources sont utilisées**. Lorsque votre job est terminé, il est possible de vérifier le pourcentage d'utilisation effective des ressources allouées avec la commande `reportseff --user <username>` (pour plus d'informations sur la commande faites `reportseff --help`)
39+
40+
:::{.callout-note}
41+
Attention les jobs de session (nomées `pawner-jupyterhub`) apparaissent aussi dans le reportseff, vous pouvez les ignorer.
42+
:::
43+
Ensuite, ajustez en fonction de l'utilisation effective et du temps de calcul les prochaines allocations.
44+
45+
Si malgré tout vous avez des doutes, n'hésitez pas à demander de l'aide sur le [RocketChatIRD](https://go.rocket.chat/invite?host=tchat.ird.fr&path=invite%2Fm2mJ5W).
46+
47+
:::
48+
49+
::: {.content-visible when-profile="english"}
50+
# Choosing Resources: CPUs / MEM / GPU
51+
52+
If you have followed the previous guides, you have already learned how to submit a SLURM job. Now, it's time to choose the appropriate resources for your job.
53+
This point is briefly addressed in the [FAD](index_marbec_gpu.qmd#faq_english).
54+
55+
MARBEC-GPU is a shared resource with great freedom of use (no quota on computing hours or number of simultaneous jobs) and a simple scheduling system: first come, first served. Therefore, it is crucial to choose the allocated resources correctly.
56+
57+
**IMPORTANT**: The execution time of a job depends on several factors, including the size of your data, the resources used, but mainly on how you have written your code or the packages used. Most codes does not allow parallelization of computations (using multiple CPU cores at the same time) and even fewer support GPU execution. Thus, even if you request 10 CPU cores and a GPU, it is quite possible that your job only uses one CPU core and not use the GPU at all. Furthermore, taking twice as many CPUs does not reduce the execution time by half; it is up to you to test and find a good compromise between allocated resources and execution time.
58+
59+
## Good Practices
60+
1. Learn about the executed code
61+
62+
63+
Before running your job on MARBEC-GPU, check if your code parallelizes calculations and/or uses the GPU. If you see parameters like "workers", "n_jobs", "n_cpus", "device", or "gpu" in the documentation, it's a good sign that the code can parallelize calculations and/or use the GPU. You can also refer to the documentation of the packages used (for commonly used packages, LLMs will know how to answer you; for niche packages or languages, don't hesitate to ask the author). If you don't find these parameters, it is likely that the code does not use these resources.
64+
65+
2. Choose the allocated resources
66+
67+
- **CPU**: If your code parallelizes calculations, you can allocate multiple CPU cores: `#SBATCH -c`. For typical uses in Python or R for machine learning, data extraction, etc., choosing between 2 and 16 CPU cores is often sufficient. For more specific uses, you may need to adjust accordingly.
68+
- **MEM**: The amount of RAM requested mainly depends on the size of your data and the size of the models used. For typical uses, between 8 and 64 GB of RAM is often sufficient. For heavier data processing tasks, you can go up to 256 GB of RAM.
69+
- **GPU**: If your code uses the GPU, you can allocate 1 GPU.
70+
71+
3. Check resource usage
72+
73+
After your job is completed, you can check the effective percentage of resource usage with the command `reportseff --user <username>` (for more information on the command, use `reportseff --help`).
74+
75+
:::{.callout-note}
76+
Be aware that session jobs (named `pawner-jupyterhub`) also appear in the reportseff, you can ignore them.
77+
:::
78+
79+
Then, adjust future allocations based on effective usage and computation time.
80+
:::

0 commit comments

Comments
 (0)