mathieu
2011-06-16 08:10:34 UTC
I would like to do some combinatorics computation using mpi and I have
a problem.
In mpi, when one uses MPI_SEND, MPI_RECV and friends, we have to know
exactly when
a transfer has to be done so as to be able to do it at all.
What I would like is to have a number N of computational nodes and 1
additional node
that checks for isomorphism. The problem is that such checks for
isomorphism could happen at any given time, it is almost impossible to
predict when such operations are done.
So, what I would like is some functions that do:
MPI_SEND_CALL(TheSpecialNode, MPI_COMM_WORLD)
for the sending side. I.e. the calling side would call the special
node and wait
for it to be available
and
MPI_RECV_CALL(TheCallingNode, MPI_COMM_WORLD)
for the receiving side. Where it would get to know who was calling
him.
Then I would do something like
WHILE(1)
mpi_recv_call(.... , ....)
.
.
normal mpi operations.
.
.
END DO
Is there any possibility of achieving such kind of operation in mpi?
If not what would you recommend as parallel paradigm? The target
language
is C/C++.
Thanks,
Mathieu
a problem.
In mpi, when one uses MPI_SEND, MPI_RECV and friends, we have to know
exactly when
a transfer has to be done so as to be able to do it at all.
What I would like is to have a number N of computational nodes and 1
additional node
that checks for isomorphism. The problem is that such checks for
isomorphism could happen at any given time, it is almost impossible to
predict when such operations are done.
So, what I would like is some functions that do:
MPI_SEND_CALL(TheSpecialNode, MPI_COMM_WORLD)
for the sending side. I.e. the calling side would call the special
node and wait
for it to be available
and
MPI_RECV_CALL(TheCallingNode, MPI_COMM_WORLD)
for the receiving side. Where it would get to know who was calling
him.
Then I would do something like
WHILE(1)
mpi_recv_call(.... , ....)
.
.
normal mpi operations.
.
.
END DO
Is there any possibility of achieving such kind of operation in mpi?
If not what would you recommend as parallel paradigm? The target
language
is C/C++.
Thanks,
Mathieu