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

Private GIT Repository
Be consistent and hold mutex in any case when returning from condition_t::timedwait().
[loba.git] / BUGS
1 ========================================================================
2 -- Wed, Feb 29 16:16:45 2012 +0100
3
4 Les exécutions parallèles donnent des résultats différents.
5 Pourquoi ?
6
7 ========================================================================
8 ##### MOSTLY RESOLVED BUGS COME AFTER THIS #############################
9 ========================================================================
10 -- Mon, Feb 27 13:26:08 2012 +0100
11
12 Les variables globales process::total_load_* ne sont pas protégées
13 contre les accès concurrents.  Il n'est donc pas possible actuellement
14 d'exécuter les simulations en parallèle (--cfg=contexts/nthreads).
15
16 -- Wed, Feb 29 15:54:31 2012 +0100
17
18 Corrigé en partie.  Il reste quelques "fixme: get locked?" à régler
19 (ou pas).
20
21 ========================================================================
22 -- Fri, May 20 17:01:33 2011 +0200
23
24 Il faut réviser l'utilisation du mutex entre le thread d'équilibrage
25 et le thread de calcul.  Il semble gardé beaucoup trop longtemps.
26
27 -- Tue, May 24 14:55:59 2011 +0200
28
29 Bon, une partie du problème est rectifiée par le commit
30 48de954 Stop locking the mutex on data_receive.
31
32 Pour le reste, je pense maintenant que ça ne gêne pas, au moins dans
33 le simulateur.  Pour faire bien, il faudrait plus séparer les deux
34 threads d'équilibrage et de calcul, et faire en sorte que chacun garde
35 un cache des données globales partagées.  Il suffirait alors de
36 synchroniser ces caches à chaque itération.
37
38 Les données partagées sont essentiellement les données des voisins :
39 load, to_send et debt.
40
41 ========================================================================
42 -- Tue, Apr 19 17:48:39 2011 +0200
43
44 Valgrind détecte une fuite de mémoire liée à un appel à backtrace.
45
46 Le problème semble être indépendant de SimGrid et peut être reproduit
47 avec le code suivant (NB: l'équivalent, compilé avec gcc ne génère pas
48 d'erreur).
49 ,----
50 | #include <execinfo.h>
51 | #include <iostream>
52 | int main()
53 | {
54 |     void *buffer[64];
55 |     int size = -1;
56 |     size = backtrace(buffer, sizeof buffer / sizeof buffer[0]);
57 |     std::cerr << "backtrace() returned " << size << "\n";
58 | }
59 `----
60 ==532== HEAP SUMMARY:
61 ==532==     in use at exit: 56 bytes in 1 blocks
62 ==532==     ...
63 ==532== LEAK SUMMARY:
64 ==532==    ...
65 ==532==    still reachable: 56 bytes in 1 blocks
66
67 ========================================================================