[FoRK] Ubuntu on Android
J. Andrew Rogers
andrew at jarbox.org
Wed Feb 22 09:51:50 PST 2012
On Feb 22, 2012, at 2:24 AM, Eugen Leitl wrote:
> I see pretty homogenous load increase over my meek 6 cores -- this
> being Linux. Of course 99% of developers don't realize that SMP/shared
> global memory and cache coherency stops scaling well before we're in
> kilocore (kilonode actually) country, so anything multithreaded will have
> to be rewritten, again.
Classic SMP software architectures need to be rewritten even at 8 cores if performance matters. The most efficient way to use a single machine these days is as a distributed cluster of individual cores. Instantiating SMT as threads on a single core is fine since there is little cost in doing so. In addition to the improved performance, treating cores on a single machine as distributed homogenizes the local software architecture and distributed system software architecture.
Virtually all software devs that we hire are thoroughly indoctrinated in classic multithreaded techniques for implementing multiprocessor concurrency. Unfortunately, those techniques are often poorly behaved on modern silicon. The issue is that most people in the software industry think distributed systems architecture is only relevant to people running giant clusters when it fact it applies to software architecture on single machines. There is still a lot of resistance to getting software devs to use a handful of cores correctly, never mind hundreds. Ironically, the distributed way is often simpler than multithreaded because it eliminates most locking.
J. Andrew Rogers
More information about the FoRK