haskell-distributed / distributed-process

Cloud Haskell core libraries
http://haskell-distributed.github.io
710 stars 95 forks source link

[DP-76] local inter-process communication doesn't need to go via the NC channel #220

Open qnikst opened 9 years ago

qnikst commented 9 years ago

[Imported from JIRA, posted by @hyperthunk Tim Watson at 26/Apr/13 7:16 PM as DP-76]

Some initial investigation suggests that this doesn't have much effect on message passing efficiency though. I'm not totally surprised, and I suspect any micro-benchmarks we come up with will vary considerably between applications. Hmph.

qnikst commented 9 years ago

On the other hand taking NC away from local communication removes a number of possible errors with NC lock or bottoms in values that are sent.

facundominguez commented 9 years ago

I don't follow that argument. Maybe an example is in order.

qnikst commented 9 years ago

Mine? If NC is not used in local communication then unsafe send of message that will evaluate to error will not break NC.

mboes commented 9 years ago

@qnikst That's not a good argument I think - more behaviour special cases is a bad thing, not a good thing.

qnikst commented 9 years ago

Agree.

hyperthunk commented 8 years ago

Yes, I agree too. The purpose of skipping the NC was to reduce latency, and avoid bottlenecks in the NC thread. I think we can probably leave this as an open question for now, as nobody is yet screaming at us to speed up intra-node comms.