On Tue, 2009-06-09 at 07:28 -0400, Terry Dontje wrote:
> The biggest issue is coming up with a
> way to have blocks on the SM btl converted to the system poll call
> without requiring a socket write for every packet.
For what it's worth you don't need a socket write every (local) packet,
all you need to send your local peers a message when you are about to
sleep. This can be implemented with a shared memory word so no implicit
comms is required. The sender can then send a message using whatever
means it does currently, check if the bit is set send a "wakeup" message
via a socket if the remote process is sleeping.
You need to be careful to get the ordering right or you end up with
deadlocks and you need to establish a "remote wakeup" mechanism although
this is easily done with sockets. You don't even need to communicate
over the socket, all it's for is to cause your peer to return from
poll/select so it can query the shared memory state. Signals would also
likely work however they tend to present other problems in my
Ashley Pittman, Bath, UK.
Padb - A parallel job inspection tool for cluster computing