]> AND Private Git Repository - loba.git/blobdiff - README
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Replace NULL with nullptr.
[loba.git] / README
diff --git a/README b/README
index d34cb4bf903697082eabe3d3d8a25e7fe9b7408c..8e4e1c72ca45f1ee0b0bb1caf5b26dbbe2075466 100644 (file)
--- a/README
+++ b/README
@@ -3,6 +3,7 @@ Contenu
 * Compilation de SimGrid
 * Compilation...
 * Utilisation
 * Compilation de SimGrid
 * Compilation...
 * Utilisation
+* Tracé de courbes
 * Communications
 * Pour ajouter un nouvel algorithme d'équilibrage
 * Pour ajouter une nouvelle option au programme
 * Communications
 * Pour ajouter un nouvel algorithme d'équilibrage
 * Pour ajouter une nouvelle option au programme
@@ -43,7 +44,61 @@ Pour changer le niveau de détail des affichages :
            level : trace, debug, verbose, info, warning, error, critical
 
 Pour plus de détail sur les options de logging :
            level : trace, debug, verbose, info, warning, error, critical
 
 Pour plus de détail sur les options de logging :
-    http://simgrid.gforge.inria.fr/doc/group__XBT__log.html#log_use
+    http://simgrid.gforge.inria.fr/simgrid/latest/doc/outcomes_logs.html#log_user
+
+Sorties
+=======
+
+* pendant la simulation :
+[Bourassa 5.000000] [proc/INFO] (6:1) current load: 5
+ +------- +-------   +--------   + +  -----+---------
+ |        |          |           | |       |
+ |        |          |           | |       \_ charge courante
+ |        |          |           | |
+ |        |          |           | \_ nombre d'itérations de calculs
+ |        |          |           |
+ |        |          |           \_ nombre d'itérations d'équilibrage
+ |        |          |
+ |        |          \_ catégorie de messages
+ |        |
+ |        \_ date courante (en secondes, dans la simulation)
+ |
+ \ nom du nœud
+
+* à la fin de la simulation :
+[Bourassa 108.886866] [proc/INFO] Final load after 107:4 iterations: 1.04113
+ +------- +---------   +--------                   +-- +             +------
+ |        |            |                           |   |             |
+ |        |            |                           |   |             \_ charge
+ |        |            |                           |   |                courante
+ |        |            |                           |   |
+ |        |            |                           |   \_ nombre d'itérations
+ |        |            |                           |      de calculs
+ |        |            |                           |
+ |        |            |                           \_ nombre d'itérations
+ |        |            |                              d'équilibrage
+ |        |            |
+ |        |            \_ catégorie de messages
+ |        |
+ |        \_ date courante (en secondes, dans la simulation)
+ |
+ \ nom du nœud
+
+
+Tracé de courbes
+================
+
+Le script extract.pl permet d'extraire les données à partir des traces
+de simulation et de le présenter sous un format acceptable par gnuplot
+ou par graph (plotutils).
+
+Exemples:
+        ./loba platform.xml 2>&1 | ./extract.pl | graph -CTX
+
+        ./loba platform.xml 2>&1 | ./extract.pl | graph -CTX -y 0 250
+
+        ./loba platform.xml 2>&1 | ./extract.pl \
+            | gnuplot -p -e 'plot "-" using 1:2:(column(-2)) with lines lc variable'
 
 Communications
 ==============
 
 Communications
 ==============
@@ -81,15 +136,13 @@ Pour ajouter un nouvel algorithme d'équilibrage
    - définir une nouvelle classe dérivant de process
    - attention, il faut construire le process explicitement
    - redéfinir la méthode load_balance qui :
    - définir une nouvelle classe dérivant de process
    - attention, il faut construire le process explicitement
    - redéfinir la méthode load_balance qui :
-     - reçoit en paramètre la charge à prendre en compte ;
+     - peut récupérer la charge courante avec get_load()
      - peut utiliser et éventuellement réordonner le tableau process::pneigh ;
      - peut récupérer l'information de charge d'un voisin avec
            pneigh[i]->get_load() ;
      - définit la charge à envoyer avec
      - peut utiliser et éventuellement réordonner le tableau process::pneigh ;
      - peut récupérer l'information de charge d'un voisin avec
            pneigh[i]->get_load() ;
      - définit la charge à envoyer avec
-           pneigh[i]->set_to_send(quantité) ;
-     - retourne la somme des quantités définies avec set_to_send, 
-       éventuellement à l'aide de la méthode process::sum_of_to_send()
-       qui clacule cette somme.
+           send(pneigh[i], quantité) ;
+   NB: le script new_loba.sh peut servir à créer les fichiers.
 
 2. Ajouter l'algorithme dans la liste des options.  Dans options.cpp :
    - faire le #include adéquat ;
 
 2. Ajouter l'algorithme dans la liste des options.  Dans options.cpp :
    - faire le #include adéquat ;
@@ -117,6 +170,7 @@ Liste de fichiers
 
     Plat.xml
     cluster1000.xml
 
     Plat.xml
     cluster1000.xml
+    machines1000.xml
     platform.xml
 
 * fichiers de description de déploiement (tests)
     platform.xml
 
 * fichiers de description de déploiement (tests)
@@ -126,14 +180,14 @@ Liste de fichiers
 
 * fichiers sources
 
 
 * fichiers sources
 
-    communicator.h
-    communicator.cpp            la couche de communication
+    communicator.h              la couche de communication
+    communicator.cpp
 
 
-    cost_func.h
-    cost_func.cpp               fonctions de coût pour comm_cost et comp_cost
+    cost_func.h                 fonctions de coût pour comm_cost et comp_cost
+    cost_func.cpp
 
 
-    deployment.h
-    deployment.cpp              génération automatique de déploiement
+    deployment.h                génération automatique de déploiement
+    deployment.cpp
 
     hostdata.h                  gestion des boites de réception, par hôte
     hostdata.cpp
 
     hostdata.h                  gestion des boites de réception, par hôte
     hostdata.cpp
@@ -141,11 +195,19 @@ Liste de fichiers
     loba_simple.h               équilibrage simple
     loba_simple.cpp             (à imiter pour ajouter d'autres algorithmes)
 
     loba_simple.h               équilibrage simple
     loba_simple.cpp             (à imiter pour ajouter d'autres algorithmes)
 
+    loba_*.{h,cpp}              autres algos d'équilibrage
+
     main.cpp                    le programme principal
 
     main.cpp                    le programme principal
 
+    message.h                   file de messages reçus
+    message.cpp
+
     misc.h                      divers trucs inclassables
     misc.cpp
 
     misc.h                      divers trucs inclassables
     misc.cpp
 
+    msg_thread.h                creation de threads SG/MSG
+    msg_thread.cpp
+
     named_object_list.h         gestion d'une table de constructeurs
                                 avec des noms et des descriptions
 
     named_object_list.h         gestion d'une table de constructeurs
                                 avec des noms et des descriptions
 
@@ -160,15 +222,35 @@ Liste de fichiers
 
     simgrid_features.h          macros pour détecter la version de SimGrid
 
 
     simgrid_features.h          macros pour détecter la version de SimGrid
 
-    simple_async.cpp            un simple programme de test
+    statistics.h                pour calculer moyenne, variance, etc.
+
+    synchro.h                   mutex, condition, etc.
+
+    sync_queue.h                lock-free synchronized queue
 
     timer.h                     gestion de timer
 
 
     timer.h                     gestion de timer
 
+    tracing.h                   définitions liées au traçage
+
     version.h                   gestion de la version du programme
     version.cpp
 
     version.h                   gestion de la version du programme
     version.cpp
 
+* scripts
+
+    colorized-loba              script pour exécuter loba en colorant les
+                                sorties
+
+    extract.pl                  outil d'extraction des données à partir des
+                                traces, pour tracer des courbes
+
+    new_loba.sh                 pour créer le squelette d'un nouvel algo
+                                d'équiblibrage loba_*
+
+    setlocalversion             calcule un numéro de version à partir du hash
+                                du dernier commit (git)
+
 * autres fichiers
 
     .gitignore                  liste des fichiers ignorés par git
 * autres fichiers
 
     .gitignore                  liste des fichiers ignorés par git
-    valgrind_suppressions_3.5   liste de quelques suppressions pour valgrind
+    valgrind_suppressions       liste de quelques suppressions pour valgrind
                                 avec SimGrid 3.5
                                 avec SimGrid 3.5