Difference between revisions of "Limitation des appels systèmes noyaux pour les systèmes de fichiers distribués"

From air
Jump to navigation Jump to search
Line 22: Line 22:
 
* [4] http://www.rath.org/pyfuse3-docs/
 
* [4] http://www.rath.org/pyfuse3-docs/
 
* [5] http://www.rath.org/pyfuse3-docs/example.html#passthrough-overlay-file-system
 
* [5] http://www.rath.org/pyfuse3-docs/example.html#passthrough-overlay-file-system
  +
* [6] Mapping Out the HPC Dependency Chaos https://arxiv.org/pdf/2211.05118.pdf
 
   
 
=Ressources pour le prototype Rust (optionnel)=
 
=Ressources pour le prototype Rust (optionnel)=

Revision as of 10:50, 8 February 2023

Sujet

Sur des infrastructures de calcul (HPC) on peut observer sous certaines condition un phénomène appeler "stat storm" [1], il s'agit de rafale d'appels systèmes noyaux déclenchés pour tester l'existence de bibliothèque lors du lancement d'une application. Ce phénoméne se trouve démultiplier lors de l'usage de systèmes de fichiers distribués comme NFS et d'application parallèle. Plusieurs approches ont été étudiées et mises en place [1][2] mais aucune n'apporte de solution générale. Nous proposons ici d'étudier l'usage d'un cache de résultats avec consultation et diffusion par multicat.

Technologies

Le prototype sera réalisé en Python, un deuxième prototype pourra être aussi réalisé en Rust. La technologie Fuse [3] sera utilisée pour interagir avec la partie système de fichier du noyau. Cette technologie permet de développer des systèmes fichiers en espace utilisateur sans avoir à développer un module noyaux [3]

Consignes

  • Lire les références [1,2,3]
  • Expérimenter fuse avec la version python3 [4] et l'exemple passthrough [5]
  • Observer et décrire par schéma avec échange le déroulement de appels stat
  • Décrire par un schéma et un diagramme de séquence le déroulement d'un appel stat avec un cache de requete
  • Implémenter un premier prototype sans multicast
  • Implémenter un second prototype avec multicast


Références

Ressources pour le prototype Rust (optionnel)