c4-level2-mpi41-slurm-20251209.txt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. @startuml
  2. !include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
  3. ' --- CONFIGURATION DU STYLE (Méthode robuste) ---
  4. ' On désactive les ombres et on met le fond en blanc
  5. skinparam shadowing false
  6. skinparam backgroundColor White
  7. ' On force le style pour les CONTENEURS (le cadre principal)
  8. skinparam rectangle<<container>> {
  9. BackgroundColor White
  10. BorderColor Black
  11. FontColor Black
  12. }
  13. ' On force le style pour les COMPOSANTS (les boites internes)
  14. skinparam rectangle<<component>> {
  15. BackgroundColor White
  16. BorderColor Black
  17. FontColor Black
  18. }
  19. ' On force le style pour les PACKAGES (les groupes)
  20. skinparam package {
  21. BackgroundColor White
  22. BorderColor Black
  23. FontColor Black
  24. }
  25. ' On force le style des flèches
  26. skinparam arrow {
  27. Color Black
  28. FontColor Black
  29. }
  30. ' ------------------------------------------------
  31. LAYOUT_WITH_LEGEND()
  32. title Diagramme de Composants (C4 L3) - Image Docker "m2chps-mpi41-slurm"
  33. Container(container, "HPC Node Container", "Docker, Debian Trixie", "Environnement complet pour la simulation de cluster HPC") {
  34. Component(entrypoint, "docker-entrypoint.sh", "Shell Script", "Initialise les clés SSH et les permissions au démarrage")
  35. Component(supervisord, "Supervisord", "Process Manager", "PID 1. Orchestre le lancement des démons")
  36. Component(sshd, "SSHD", "Service", "Communication inter-nœuds (MPI) et accès utilisateur")
  37. Component(munge, "Munge", "Auth Service", "Service d'authentification pour Slurm")
  38. Component(telegraf, "Telegraf", "Monitoring Agent", "Collecte des métriques")
  39. Package "Slurm Workload Manager" {
  40. Component(slurm_binaries, "Slurm Daemons", "C/Binary", "slurmctld, slurmd, slurmdbd")
  41. Component(slurm_conf, "Configs", "File", "/etc/slurm/*.conf")
  42. }
  43. Package "Compute Environment" {
  44. Component(openmpi, "OpenMPI 4.1.8", "Library/Binary", "Compilé avec support PMI/Slurm")
  45. Component(python_env, "Python Venv", "Python 3 + mpi4py", "Environnement d'exécution MPI")
  46. Component(omni, "Omni-Compiler", "Compiler", "Support XMP")
  47. }
  48. Rel(entrypoint, supervisord, "Executes via exec", "bash")
  49. Rel(supervisord, sshd, "Manages", "process")
  50. Rel(supervisord, munge, "Manages", "process")
  51. Rel(supervisord, telegraf, "Manages", "process")
  52. Rel(supervisord, slurm_binaries, "Manages", "process")
  53. Rel(slurm_binaries, munge, "Authenticates via", "socket")
  54. Rel(slurm_binaries, slurm_conf, "Reads", "file")
  55. Rel(python_env, openmpi, "Uses", "mpi4py bindings")
  56. Rel(openmpi, slurm_binaries, "Interacts via", "PMI2")
  57. Rel(sshd, openmpi, "Used by", "mpirun/ssh")
  58. }
  59. @enduml