<blush>
> Anyway, to make his point even stronger, the message passing
> interfaces like PVM and MPI can also be optimized for the local
> case, in fact, SGI does that - they have MPI libraries that know
> when the "remote" node is actually local and then just use shared
> memory for that message.
Just how smart have they made this optimisation, BTW? For the volume
rendering application, you have two conceptual transfers of data: the
volume data is "shipped" to worker nodes and they in turn "ship"
subimage data back to the scheduling node.
In the threaded case, there is no transfer of data required. The
volume data is obviously shared, but so is the rendered image
buffer. All threads write to that same buffer, but since they write to
different parts of it, there's no conflict.
So what happens for local MPI? Is data copied twice (into and out of a
SHM buffer), once (into a SHM buffer which is passed to the
destination), or not at all? Not coping at all is easy enough if you
know the destination is another thread in the same process, but
doesn't that break the abstraction of receiving a message in a private
buffer?
Granted, in my case it wouldn't matter, but I wonder about the general
case.
Regards,
Richard....
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/