Skip to content

Le choix de votre intergiciel

Les différents choix ont été regroupés en grande famille. Les intergiciels choisis ici sont facilement installables dans G5K. Vous pouvez proposer d'autres intergiciels, mais ce sera à vous de vérifier que tout fonctionne dans G5K.

Chaque équipe devra choisir un intergiciel différent.

Variantes autour de MPI + threads géré par un autre runtime

Dans ces variantes le support multi-threads et le support des réseaux rapides sont obligatoires. Cela implique que vous ne pouvez pas utiliser NFS pour les transferts de fichiers (réseau lent).

  • MPI + C + OpenMP
  • MPI + C++ + TBB
  • MPI (Boost) + C++20 pour les threads (promise/async)

Bibliothèques de très haut-niveaux

  • Charm++ (Bibliothèque C++)
  • Python celery, IPythonParallel
  • DRb Ruby
  • async_parallel ou distributed OCaml;
  • Hadoop, le Map-Reduce de Apache (installation difficile)
  • Apache Spark, Beam, Fink, etc. (Analyse de données, Scala/Java/Python/R)

Les languages incluant un support pour les systèmes distribués

Les objets distribués

  • RMI avec Java ou Clojure;
  • DO de Objective-C (Gnustep);
  • Distributed ADA (polyorb), l'ex-premier langage de l'Ensimag;
  • Python + Pyro;
  • RPC Go (dans la bib. standard, http://golang.org);
  • Apache Thrift (facebook) + Perl, Go, D ou Haskell;
  • Rust + Tonic (gRPC)
  • Raku + Cro

Divers

  • Zero-MQ (bibliothèque de socket de haut niveaux (ex: diffusion, bus, ...))
  • nanomsg (fille de zero-mq, plus simple, pour C)
  • Simgrid (simulation) (il faudra mesurer et simuler les clusters de g5k)
  • socket de bases en D ou en C++. Il faudra gérer beaucoup de choses à la main.

Un autre framework peut se négocier