3 ms·
> Asynchronous design is a bloody stupid idea. But you see, synchrony is fundamentally physically impossible in any distributed system (one of the tenets of sp
by ssivark 7y ago
> Asynchronous design is a bloody stupid idea.
But you see, synchrony is fundamentally physically impossible in any distributed system (one of the tenets of special relativity; explained for computer scientists by Leslie Lamport in his ~1978 paper).
When we try to scale a system beyond basic capacity (bits, bits/sec throughput, FLOPs, etc) the fact that we cannot shrink our devices (quantum effects) means that they will be separated by some significant distance. Eg: if you wish to operate with a clock rate of 1GHz, light travels ~1foot between successive clock beats. That’s even before talking about capacitive response times, etc.
We might have gotten away with that synchronicity assumption for the first few decades of computing, but we will run into that wall sooner or later (if not already). It is fundamentally untenable for “larger” systems.
Maybe the answer is to have the microscopic system behavior be synchronous and simple, with macroscopic communication patterns being asynchronous. But I wonder whether it’s even possible to prevent abstraction leakage.
- bsder 7y ago> But you see, synchrony is fundamentally physically impossible in any distributed system (one of the tenets of special relativity; explained for computer scientists by Leslie Lamport in his ~1978 paper). Lamport's paper ("Time, Clocks, and the Ordering of Events in a Distributed System") says that systems with independent clocks may not be able to find a valid ordering if they can only exchange messages (aka a distributed algorithm). If said systems are slaved to a single clock source, they can find an ordering just fine until the uncertainty of the distribution mechanism exceeds the accuracy threshold that you are trying to measure. Now, you may not consider that to be a "distributed" system. And that's fine, but the original context for discussion is a globally distributed clock in a modern CPU. I can use copper wire for a remarkable distance just fine to slave clocks of computers such that they are an exact, measurable number of cycles offset from one another. And Lamport's paper says nothing about simultaneity in a relativistic sense where the observers have different reference frames. Are you sure Lamport's clocks paper is what you are thinking of?