Patrick Geoffray wrote: >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. > > 1) The version I talk about is already done. Check my putbacks. "Already done" is easier! :^)
2) The two ideas are largely orthogonal. The RFC talks about a variety of things: cleaning up the sendi function, moving the sendi call up higher in the PML, bypassing the PML receive-request structure (similar to sendi), and stream-lining the data convertors in common cases. Only one part of the RFC (directed polling) overlaps with having a single FIFO per receiver. >>*) 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. > > Not sure I understand this paragraph. I do, however, think there are great benefits to the single-receiver-queue model. It implies congestion on the receiver side in the many-to-one case, but if a single receiver is reading all those messages anyhow, message-processing is already going to throttle the message rate. The extra "bottleneck" at the FIFO might never be seen. >>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 ? > To recap: 1) The work is already done. 2) The single-queue model addresses only one of the RFC's issues. 3) I'm a fan of the single-queue model, but it's just a separate discussion.