X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/5ac6e4c95a58f2daef49121f2f8ce4461d8014b2..e2986b2661919a35ed6cab7627ee83e63495ed3b:/BUGS diff --git a/BUGS b/BUGS index 9ae9690..8f62e4d 100644 --- a/BUGS +++ b/BUGS @@ -1,9 +1,33 @@ ======================================================================== -Il faut réviser l'utilisation du mutex entre le thread d'équilibrage -et le thread de calcul. Il semble gardé beaucoup trop longtemps. +Les exécutions parallèles donnent des résultats différents. +Pourquoi ? + +======================================================================== +Les variables globales process::total_load_* ne sont pas protégées +contre les accès concurrents. Il n'est donc pas possible actuellement +d'exécuter les simulations en parallèle (--cfg=contexts/nthreads). + +Corrigé en partie. Il reste quelques "fixme: get locked?" à régler +(ou pas). ======================================================================== ##### RESOLVED BUGS COME AFTER THIS #################################### +======================================================================== +Il faut réviser l'utilisation du mutex entre le thread d'équilibrage +et le thread de calcul. Il semble gardé beaucoup trop longtemps. + +Bon, une partie du problème est rectifiée par le commit +48de954 Stop locking the mutex on data_receive. + +Pour le reste, je pense maintenant que ça ne gêne pas, au moins dans +le simulateur. Pour faire bien, il faudrait plus séparer les deux +threads d'équilibrage et de calcul, et faire en sorte que chacun garde +un cache des données globales partagées. Il suffirait alors de +synchroniser ces caches à chaque itération. + +Les données partagées sont essentiellement les données des voisins : +load, to_send et debt. + ======================================================================== Comment expliquer ces différences entre SG 3.5 et SG svn ?