The Von Neumann Bottleneck Is Still Here
March 30, 2022

The von Neumann bottleneck is not only about memory bandwidth. It is also about the programming model that follows from one instruction stream moving through shared resources.

This note points at a harder target: a distributed program that can span cores and devices while preserving ownership, access, state, and reasoning boundaries.

Parallel-computing noteOriginally posted 2022-03-30; expanded here around the programming-model problem.

Article focus: von Neumann bottleneck, many-core contention, object capabilities, distributed state, and multi-device execution.

The Bottleneck

Many cores do not automatically solve the single-program problem. They can add contention, synchronization, resource sharing, and operational complexity while leaving the source model hard to reason about.

The useful question is how one program can spread across cores and devices without losing ownership, access control, causality, state, and locality.

The Programming Target

The note sketches a distributed executable model where object-capability style ownership governs access to resources. The same idea can be viewed through several surfaces: objects, reactive dataflow, statecharts, Verilog-like structure, FPGA placement, or conventional language syntax.

The tradeoff is that this is not only a runtime problem. The source language, security model, scheduler, data model, and device boundaries all have to preserve the same ownership story.

Browser-State Analogy

The Node.js analogy in the original post was useful: imagine a client session's browser state as a temporary instance that remains visible to the server-side program as part of the same system. The point is continuity of program structure across a network boundary.