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.
8 . Ne pas creer de structure RequestStruct en mode synchrone.
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.
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.
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].
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.
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.
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