summaryrefslogtreecommitdiff
path: root/modules/mpi/TODO
blob: a0db945d755922b681900ac7ba832f8a0f6eddee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

* To implement:
MPI_Barrier
MPI_Reduce
MPI_Cancel
MPI_Test

Workaround: allocated a big data


* Write more test cases with big data 
* 

* ecrire d'autres tests
* gestion du tag dans le send et le recv
=> a mettre à jour. c'est hardcodé dans un des deux
* gestion des irecv/isend
* gestion des gather
* MPI barrier
* test unitaire de bcast
* porter l'exemple pi.cc
//   x = mpiallreduce(y,operation,comm)


voir MPICOMMSPAWN
MPIINTERCOMMMERGE

freemat a
  context->addFunction("mpisend",MPISend,4,0,"array","dest","tag","communicator");
  context->addFunction("mpirecv",MPIRecv,3,3,"source","tag","communicator");
  context->addFunction("mpibcast",MPIBcast,3,1,"array","root","communicator");
  context->addFunction("mpibarrier",MPIBarrier,1,0,"communicator");
  context->addFunction("mpicommrank",MPICommRank,1,1,"communicator");
  context->addFunction("mpicommsize",MPICommSize,1,1,"communicator");
  context->addFunction("mpireduce",MPIReduce,4,1,"y","operation","root","comm");
  context->addFunction("mpiallreduce",MPIAllReduce,3,1,"y","operation","root");
  context->addFunction("mpiinitialized",MPIInitialized,0,1);
  context->addFunction("mpiinit",MPIInit,0,0);
  context->addFunction("mpifinalize",MPIFinalize,0,0);
  context->addFunction("mpicommgetparent",MPICommGetParent,0,1);
  context->addFunction("mpicommspawn",MPICommSpawn,5,2,
		       "command","args","maxprocs","root","comm");
  context->addFunction("mpiintercommmerge",MPIIntercommMerge,2,1,"intercomm","highflag");
}



Mandatory functions :

MPI_Reduce
MPI_Finalize

juste:
MPI_Comm_size(1);
fais cracher scilab (manque probablement un check que mpi est bien init)