Salome HOME
Merge from BR_V5_DEV 16Feb09
[modules/med.git] / src / ParaMEDMEM / TODO_JR
1
2 MPI_Access :
3 ============
4
5 . Creer des methodes [I]SendRecv en point a point avec un "target"
6   pour le Send et un "target" pour le Recv comme le SendRecv MPI.
7
8 . Ne pas creer de structure RequestStruct en mode synchrone.
9
10
11 MPI_AccessDEC :
12 ===============
13
14 . AllToAll, AllToAllv, AllToAllTime et AllToAllvTime comportent
15   des sequences de code semblables qui pourraient etre regroupees
16   sans que cela nuise a la lisibilite du code.
17
18 . En mode asynchrone, il n'y a pas de controle d'engorgement des
19   messages envoyes dans CheckSent(). Il est vrai qu'en pratique
20   une synchronisation des temps est faite dans AllToAllTime et
21   AllToAllvTime. Mais ce probleme pourrait se produire avec
22   AllToAll et AllToAllv. Il serait possible de fixer un nombre
23   maximum de messages envoyes et "en cours" et de le comparer avec
24   le nombre de requetes rendu par MPI_Access. En cas de depassement
25   de ?n?*UnionGroupSize par exemple, CheckSent pourrait fonctionner
26   en mode "WithWait". Ce qui ferait qu'on apellerait Wait au lieu de Test.
27
28 . Meme si le prototype d'interpolateur comporte des parametres
29   int nStepBefore et int nStepAfter, le codage actuel considere
30   qu'on n'a que nStepBefore=1 et nStepAfter=1.
31   Ainsi on a (*_TimeMessages)[target][0] et (*_TimeMessages)[target][1]
32   ainsi que &(*_DataMessages)[target][0] et &(*_DataMessages)[target][1].
33
34 . Les champs nStepBefore et nStepAfter correspondent a un maximum
35   requis. On devrait avoir les champs correspondants qui valent les
36   nombres disponibles a un moment donne.
37
38 . Il existe un champs OutOfTime qui n'est pas utilise actuellement.
39   Il faudrait definir son usage et le transmettre sans doute à
40   l'interpolateur. Actuellement, L'interpolateur lineaire effectue une
41   extrapolation si OutOfTime vaut true.
42
43 . Dans CheckTime, on alloue et detruit les (*_DataMessages)[target][]
44   alors qu'on pourrait considerer que pour un "target" donne, les
45   recvcount sont constants pendant toute la boucle de temps. Ainsi
46   on n'allouerait les buffers qu'une fois au depart et ils ne seraient
47   liberes qu'a la fin.
48
49
50