-
Notifications
You must be signed in to change notification settings - Fork 0
JoeDralliam/kahn-network
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Implémentations =============== Cinq implémentations des réseaux de Kahn sont fournies : * _sequentiel_ qui simule la concurrence par des continuations. * _pipes_ qui utilise des processus lourd (fork) et des pipes. * _pipes-thread_ qui utilise des processus léger (thread) et des pipes. * _network_ qui utilise des processus lourd (fork) et des sockets. * _network-thread_ qui utilise des processus léger (thread) et des sockets. L'implémentation de référence (Kahn.Th) est désigné par _thread_ . Applications ============ mapReduce : une implémentation du map-reduce se basant sur l'interface de functory (foncteur _MapReduce.Base_), ainsi qu'un compteur de mots l'utilisant. Chaque travailleur est un Kahn.process. pictureInPicture : une implémentation "à la chaine" du picture-in-picture. Arguments communs: * -network _impl_ : utilise l'implémentation _impl_ des réseaux de Kahn * -silent : n'affiche rien Arguments spécifiques à mapReduce : * -workers _n_ : spécifie les nombres de travailleurs (au sens de functory) à utiliser. * -file _filename_ : fichier où aller chercher les mots * -easy : utilise une opération de map simple * -hard : utilise une opération de map complexe Arguments spécifiques à pictureInPicture : * -big _img_ : spécifie la grande image. Egalement utilisé pour pip_n * -small _img_ : spécifie la petite image. * -recursivity _n_ : spécifie le nombre de niveau de récursivité dans pip_n. Comparaison sur mapReduce.native ================================ A titre indicatif, sur une machine à quatre coeurs, les temps réels d'exécutions : * Avec -easy : ---------------------------------------------------------------------------------- | workers | 1 | 3 | 5 | 10 | 20 | 50 | 100 | 200 | ---------------------------------------------------------------------------------- | implementation | | | | | | | | | ---------------------------------------------------------------------------------- | sequentiel | 1.10s | 1.21s | 1.50s | 2.13s | 3.40s | 7.14s | 13.7s | 26.5s | ---------------------------------------------------------------------------------- | pipes | 3.47s | 1.99s | 1.67s | 1.80s | 1.95s | 2.11s | 2.16s | 2.18s | ---------------------------------------------------------------------------------- | pipes-thread | 3.44s | 3.45s | 3.59s | 3.67s | 3.67s | 3.55s | 3.68s | 3.69s | ---------------------------------------------------------------------------------- | thread | 3.41s | 9.53s | 17.7s | (1) | (1) | (1) | (1) | (1) | ---------------------------------------------------------------------------------- | network | 6.47s | 3.49s | 3.20s | 3.18s | 3.43s | 3.65s | 4.10s | (2) | ---------------------------------------------------------------------------------- | network-thread | 6.42s | 4.82s | 4.49s | 4.32s | 4.49s | 4.42s | 4.48s | (2) | ---------------------------------------------------------------------------------- * Avec -hard : ---------------------------------------------------------------------------------- | workers | 1 | 3 | 5 | 10 | 20 | 50 | 100 | 200 | ---------------------------------------------------------------------------------- | implementation | | | | | | | | | ---------------------------------------------------------------------------------- | sequentiel | 5.80s | 5.95s | 6.24s | 6.87s | 8.22s | 11.9s | 18.7s | (1) | ---------------------------------------------------------------------------------- | pipes | 7.16s | 4.94s | 4.34s | 4.22s | 4.24s | 4.66s | 5.72s | 7.05s | ---------------------------------------------------------------------------------- | pipes-thread | 8.54s | 8.79s | 8.92s | 8.97s | 8.99s | 9.13s | 9.44s | 9.77s | ---------------------------------------------------------------------------------- | thread | 9.56s | 15.1s | 22.2s | (1) | (1) | (1) | (1) | (1) | ---------------------------------------------------------------------------------- | network | 10.0s | 6.88s | 5.87s | 5.31s | 5.45s | 6.25s | 7.61s | (2) | ---------------------------------------------------------------------------------- | network-thread | 11.3s | 10.5s | 10.3s | 10.3s | 10.4s | 10.5s | 10.9s | (2) | ---------------------------------------------------------------------------------- (1) : L'exécution a dépassé le temps limite de 30 secondes. (2) : Le processus a essayé d'ouvrir trop de sockets.
About
Kahn networks implementation in ocaml
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published