X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/b78d5563826957045678f4c3bcfdcef6c9bfc48d..404368d69d4124f827b3eae4f231ee61191c65fe:/README?ds=inline diff --git a/README b/README index d34cb4b..7368386 100644 --- a/README +++ b/README @@ -3,6 +3,7 @@ Contenu * Compilation de SimGrid * Compilation... * Utilisation +* Tracé de courbes * Communications * Pour ajouter un nouvel algorithme d'équilibrage * Pour ajouter une nouvelle option au programme @@ -45,6 +46,60 @@ Pour changer le niveau de détail des affichages : Pour plus de détail sur les options de logging : http://simgrid.gforge.inria.fr/doc/group__XBT__log.html#log_use +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 ============== @@ -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 : - - 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 - 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 ; @@ -117,6 +170,7 @@ Liste de fichiers Plat.xml cluster1000.xml + machines1000.xml platform.xml * fichiers de description de déploiement (tests) @@ -126,14 +180,16 @@ Liste de fichiers * fichiers sources - communicator.h - communicator.cpp la couche de communication + atomic_compat.h chargement des la classe std::atomic + + 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 @@ -141,11 +197,19 @@ Liste de fichiers 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 + message.h file de messages reçus + message.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 @@ -160,15 +224,35 @@ Liste de fichiers 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 + tracing.h définitions liées au traçage + 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 - valgrind_suppressions_3.5 liste de quelques suppressions pour valgrind + valgrind_suppressions liste de quelques suppressions pour valgrind avec SimGrid 3.5