Hi all,
Does lam use polling or interrupts for its synchronous sending and
receiving?
Is it configurable to use either? If so what is the default behaviour?
I have a thread for performing asynchronous sending and receiving,
something along the lines of...
while(running){
MPI_IRecv(&request)
While(recvflag ==0){
MPI_Test(request,recvflag)
MPI_Send()
yield()
}
yield()
}
From reading a bit [1]:
<snip>
# Applications which have the following characteristics may see
performance improvements when using with interrupt mode:
* Applications that use nonblocking send or receive operations for
communication.
* Applications that have non-synchronized sets of send or receive
pairs. In other words, the send from node0 is issued at a different
point in time with respect to the matching receive in node1.
* Applications that do not issue waits for nonblocking send or
receive operations immediately after the send or receive, but rather do
some computation prior to issuing the waits.
</snip>
Now my application seems to satisfy all three of these, will I have
improved performance using interrupts?
I have particular problems when there are multiple mpi processes per
node. If you have a lot of MPI processes per node will interrupts
perform better?
Thanks
[1] (http://www.llnl.gov/computing/tutorials/mpi_performance/)
--
Mike
This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.
|