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

maj

parent fbec1c31
Pipeline #98935 passed with stage
in 10 seconds
......@@ -8,58 +8,30 @@
@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=Ubuntu+Mono:400,700,400italic);
body {
font-family: 'Droid Serif';
}
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;
}
@import url(https://fonts.googleapis.com/css?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);
</style>
</head>
<body>
<textarea id="source">
name: inverse
class: center, inverse, middle
# Conteneurs pour le calcul
# ![](images/singu.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 ?
......@@ -100,21 +72,28 @@
# Docker et le calcul
- 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
- GPU, infiniband, openmpi pas intégrés
- GPU
- Sécurité
- daemon root
- pas d’isolation : une appli root du conteneur qui s’échappe = un attaquant root sur la machine physique
.right[![](images/docker-filesystems-multilayer.png)]
---
# Conteneurs orientés calcul
## 3 Conteneurs usermode compatibles openMPI
# Orchestrateur vs Job Scheduler
- 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
- Singularity
- Shifter
- Nvidia enroot ?
---
background-image: url(images/charlie.png)
# Charlie-cloud
......@@ -154,13 +133,12 @@
- Aucune dépendance pour l'installation
- compatible toute distribution linux avec kernel récent
- droits root nécessaires pour créer un conteneur
- compatible avec les images docker
- compatible dockerhub
- compatible avec les images docker, dockerhub, ORAS
- 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
- un conteneur = un fichier (meilleures perfs sur fs distribué) ou un répertoire
- Ecrit en C, réecriture en Go en cours
- Documentation pas toujours à jour
- Ecrit en Go
- Cloud propriétaire
- Libre et gratuit / Version pro payante
---
......@@ -172,7 +150,10 @@
- Utilisation de registres Public/Privé dédiés (http://www.singularity-hub.org/)
- Un conteneur est facile à transporter pour l'utilisateur (un fichier à copier)
- 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
- Accès direct aux GPU de la machine
......@@ -286,12 +267,10 @@
var slideshow = remark.create({
highlightStyle: 'monokai',
highlightLanguage: 'remark',
highlightLines: true
highlightLines: true,
ratio: '16:9'
});
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>
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