Hi Eugene,
Eugene Loh wrote:
>> replace the fifo¡¦s with a single link list per process in shared
>> memory, with senders to this process adding match envelopes
>> atomically, with each process reading its own link list (multiple
> *) Doesn't strike me as a "simple" change.
Actually, it's much simpler than trying to optimize/scale the N^2
implementation, IMHO.
> *) Not sure this addresses all-to-all well. E.g., let's say you post a
> receive for a particular source. Do you then wade through a long FIFO
> to look for your match?
The tradeoff is between demultiplexing by the sender, which cost in time
and in space, or by the receiver, which cost an atomic inc. ANY_TAG
forces you to demultiplex on the receive side anyway. Regarding
all-to-all, it won't be more expensive if the receives are pre-posted,
and they should be.
> What the RFC talks about is not the last SM development we'll ever
> need. It's only supposed to be one step forward from where we are
> today. The "single queue per receiver" approach has many advantages,
> but I think it's a different topic.
But is this intermediate step worth it or should we (well, you :-) ) go
directly for the single queue model ?
Patrick
|