-
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