Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> A special register one CPU could write to, and the rest could read from, for example

Finally, an actual suggestion! OK, how are you going to mediate the thread access so one 'owns' it exculsively for writing while others can rad it? And when will the other threads know when there is something to read? And how wide is this register - 64 bits? And how much overhead will there be for this negotiation between threads? Something like:

x this register is mine for writing, all acknowledge please

x each thread acknowledges (taking various times as each thread lives on different cores/sockets so limited to the speed of the slowest)

x writer thread writes to register

x writer thread releases lock and signals one or more reader threads

x reader threads read and acknowledge lock so another writer can claim the lock

Quite an overhead. Now do that multiple times and it gets slow because it's only 64 bits, which is a lot of overhead for each chunk of data.

Compare that with multiple independent cache lines of 512 bits which can be filled and read independently, then passed around using existing, highly tuned and extremely fast cache coherence protocols that already exist.

> Changing levels of abstraction is very useful, often powerful, and no one is above a reminder to do so.

AFAICS you didn't specify anything until this post. How can we evaluate a claim of 'there has to be something better' until you give it?

> Please review the thread and try to find the understood references to Hennesy & Patterson which precede your linking to it.

Can't see any.

> While you're at it, please substantiate where any mechanism I've suggested violates the rules of physics, C, relativity, or electromagnetism

I was responding to this details-free request: "Shouldn't we have better hardware support for communicating threads?" Better has cost. You just seem unaware of the tradeoffs.

> Also, I've been reviewing your comments. They're somewhat quick to talk down and jump quickly to high handed conclusions about where other commenters are coming from

Yeah, not one of my finer features :( but if someone suggests something solid I'll talk, if someone is willing to learn I'll try to help, and if I'm wrong I'll admit it straight away.



Finally, an actual suggestion!

This is evidence that either you're not familiar enough with these issues, so you need to have some things spelled out for you, or you have a rather narrow view of how things should be done at the level of machine language. Funny, because the entire discussion has been about hardware that doesn't commonly exist.

OK, how are you going to mediate the thread access so one 'owns' it exculsively for writing while others can rad it? And when will the other threads know when there is something to read? And how wide is this register - 64 bits? And how much overhead will there be for this negotiation between threads?

Absolutely none of that is necessary for pub/sub semantics between actors. (Either in the form of a register or a scratchpad.) Interesting that you jumped to those several unnecessary conclusions, then ran with it. Left as an exercise. (Hint, it's trivial to show you can't do it with just one instance. However, you can make do with just one tool.)

AFAICS you didn't specify anything until this post.

Sorry, but that has nothing to do with your consistently inappropriate tone, your lack of substantiation on my other points, and your Dunning-Kruger penchant for running off without understanding where the other commenters are coming from. I long for the USENET days when I had a 'killfile' for this stuff. Have a good day. I think I've exhausted the entertainment potential from this one.


The answer you have longed for is economics! I too wish things that don't exist will exist some day in the future. A man can dream after all...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: