Commit befc2020 authored by Martin Souchal's avatar Martin Souchal
Browse files

maj

parent fbec1c31
Pipeline #98935 passed with stage
in 10 seconds
...@@ -5,61 +5,33 @@ ...@@ -5,61 +5,33 @@
<title>Singularity</title> <title>Singularity</title>
<meta charset="utf-8"> <meta charset="utf-8">
<style> <style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz); @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic); @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic); @import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { @import url(https://fonts.googleapis.com/css?family=Droid+Serif);
font-family: 'Droid Serif'; @import url(https://fonts.googleapis.com/css?family=Lato&subset=latin,latin-ext);
} @import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');
@import url(style.css);
h1,
h2,
h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code,
.remark-inline-code {
font-family: 'Ubuntu Mono';
}
code {
background: #e7e8e2;
border-radius: 5px;
}
/* Two-column layout */
.left-column {
width: 49%;
float: left;
}
.red {
color: #fa0000;
}
.footnote {
position: absolute;
bottom: 3em;
}
.right-column {
width: 50%;
float: right;
}
</style> </style>
</head> </head>
<body> <body>
<textarea id="source"> <textarea id="source">
name: inverse
class: center, inverse, middle
# Conteneurs pour le calcul # Conteneurs pour le calcul
# ![](images/singu.png) # ![](images/singu.png)
# ![](images/licence.png) # ![](images/licence.png)
###### Martin Souchal (Centre de calcul Francois Arago) ###### Martin Souchal 2021 (APC - FACe - ComputeOps)
---
# Architecture HPC
---
# Problématiques software HPC
--- ---
# En quoi les conteneurs peuvent nous aider dans le contexte scientifique ? # En quoi les conteneurs peuvent nous aider dans le contexte scientifique ?
...@@ -100,21 +72,28 @@ ...@@ -100,21 +72,28 @@
# Docker et le calcul # Docker et le calcul
- Docker est un micro service - Docker est un micro service
- Virtualisation réseau (bridge, puis interfaces avec des IP privées) - Network namespace et compatibilité matériel réseau pour cluster (Intel OmniPath, Infiniband...). Problématique MPI.
- Image docker : superpositions de couches - Image docker : superpositions de couches
- GPU, infiniband, openmpi pas intégrés - GPU
- Sécurité - Sécurité
- daemon root - daemon root
- pas d’isolation : une appli root du conteneur qui s’échappe = un attaquant root sur la machine physique - pas d’isolation : une appli root du conteneur qui s’échappe = un attaquant root sur la machine physique
.right[![](images/docker-filesystems-multilayer.png)] .right[![](images/docker-filesystems-multilayer.png)]
--- ---
# Conteneurs orientés calcul # Orchestrateur vs Job Scheduler
## 3 Conteneurs usermode compatibles openMPI
- Approche microservice vs Job (avec heure de début - fin)
- Job Scheduler plus avancé sur : mécanismes de files d’attente/de mises en attente ou pause (checkpointing), de priorités / Fair sharing, droits/accès et partages des ressources physiques.
- Intégration dans l’environnement cluster existant
---
# Panorama conteneurs orientés calcul
## 4 Conteneurs usermode compatibles openMPI
- Charlie-cloud - Charlie-cloud
- Singularity - Singularity
- Shifter - Shifter
- Nvidia enroot ?
--- ---
background-image: url(images/charlie.png) background-image: url(images/charlie.png)
# Charlie-cloud # Charlie-cloud
...@@ -154,13 +133,12 @@ ...@@ -154,13 +133,12 @@
- Aucune dépendance pour l'installation - Aucune dépendance pour l'installation
- compatible toute distribution linux avec kernel récent - compatible toute distribution linux avec kernel récent
- droits root nécessaires pour créer un conteneur - droits root nécessaires pour créer un conteneur
- compatible avec les images docker - compatible avec les images docker, dockerhub, ORAS
- compatible dockerhub
- Support GPU : possibilité de monter le GPU dans le conteneur avec les drivers de l'host (--nv) - Support GPU : possibilité de monter le GPU dans le conteneur avec les drivers de l'host (--nv)
- Pas de gestion integrée du réseau - Pas de gestion integrée du réseau
- un conteneur = un fichier (meilleures perfs sur fs distribué) ou un répertoire - un conteneur = un fichier (meilleures perfs sur fs distribué) ou un répertoire
- Ecrit en C, réecriture en Go en cours - Ecrit en Go
- Documentation pas toujours à jour - Cloud propriétaire
- Libre et gratuit / Version pro payante - Libre et gratuit / Version pro payante
--- ---
...@@ -172,7 +150,10 @@ ...@@ -172,7 +150,10 @@
- Utilisation de registres Public/Privé dédiés (http://www.singularity-hub.org/) - Utilisation de registres Public/Privé dédiés (http://www.singularity-hub.org/)
- Un conteneur est facile à transporter pour l'utilisateur (un fichier à copier) - Un conteneur est facile à transporter pour l'utilisateur (un fichier à copier)
- Singularity apps - Singularity apps
- Compatible tous scheduler - Compatible tous scheduler (Dans Singularity, pas de démon, vu comme une application
standard par le Job Scheduler. Compatible avec les vieux
noyaux, pas de problèmes de sécurité (ou rarement). Pas de
‘cgroups‘ ; les limites sont fixées par le Job Scheduler.)
- Intégration de tests et d'aide intégrée dans le conteneur - Intégration de tests et d'aide intégrée dans le conteneur
- Accès direct aux GPU de la machine - Accès direct aux GPU de la machine
...@@ -283,15 +264,13 @@ ...@@ -283,15 +264,13 @@
<script src="./remark-latest.min.js"> <script src="./remark-latest.min.js">
</script> </script>
<script> <script>
var slideshow = remark.create({ var slideshow = remark.create({
highlightStyle: 'monokai', highlightStyle: 'monokai',
highlightLanguage: 'remark', highlightLanguage: 'remark',
highlightLines: true highlightLines: true,
}); ratio: '16:9'
</script> });
<script>
var slideshow = remark.create();
</script> </script>
</body> </body>
</html> </html>
\ No newline at end of file
body {
/* font-family: 'Droid Serif'; */
font-family: 'Open Sans', sans-serif;
}
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: 400;
margin-bottom: 0;
}
.remark-slide-content h1 { font-size: 3em; }
.remark-slide-content h2 { font-size: 2em; }
.remark-slide-content h3 { font-size: 1.6em; }
.footnote {
position: absolute;
bottom: 3em;
font-size: 60%;
}
li p { line-height: 1.25em; }
.red { color: #fa0000; }
.green { color: #20963d; }
.large { font-size: 2em; }
a, a > code {
color: rgb(249, 38, 114);
text-decoration: none;
}
code {
background: #e7e8e2;
border-radius: 5px;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
.remark-code-line-highlighted { background-color: #373832; }
.pull-left {
float: left;
width: 47%;
}
.pull-right {
float: right;
width: 47%;
}
.pull-right ~ p {
clear: both;
}
#slideshow .slide .content code {
font-size: 0.8em;
}
#slideshow .slide .content pre code {
font-size: 0.9em;
padding: 15px;
}
.inverse {
background: #eff5ef;
color: #777872;
text-shadow: 0 0 20px #333;
}
.inverse h1, .inverse h2 {
color: #f3f3f3;
line-height: 0.8em;
}
/* Slide-specific styling */
#slide-inverse .footnote {
bottom: 12px;
left: 20px;
}
#slide-how .slides {
font-size: 0.9em;
position: absolute;
top: 151px;
right: 140px;
}
#slide-how .slides h3 {
margin-top: 0.2em;
}
#slide-how .slides .first, #slide-how .slides .second {
padding: 1px 20px;
height: 90px;
width: 120px;
-moz-box-shadow: 0 0 10px #777;
-webkit-box-shadow: 0 0 10px #777;
box-shadow: 0 0 10px #777;
}
#slide-how .slides .first {
background: #fff;
position: absolute;
top: 20%;
left: 20%;
z-index: 1;
}
#slide-how .slides .second {
position: relative;
background: #fff;
z-index: 0;
}
.remark-slide-content table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: 100%;
overflow: auto;
font-size: 60%;
}
.remark-slide-content td, .remark-slide-content th {
border: 1px solid #ddd;
padding: 8px;
}
.remark-slide-content th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #4CAF50;
color: white;
}
.remark-slide-content tr:nth-child(even){background-color: #f2f2f2;}
/* Two-column layout */
.left-column {
color: #777;
width: 20%;
height: 92%;
float: left;
}
.left-column h2:last-of-type, .left-column h3:last-child {
color: #000;
}
.right-column {
width: 75%;
float: right;
padding-top: 1em;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment