On Mon, May 27, 2019 at 2:00 PM Ola Fosheim Grøstad via Digitalmars-d-announce <[email protected]> wrote: > > On Monday, 27 May 2019 at 20:14:26 UTC, Manu wrote: > > Computers haven't had only one thread for almost 20 years. Even > > mobile > > phones have 8 cores! > > This leads me back to my original proposition. > > If Robert is aiming for embedded and server rendering then he > probably wants a simple structure with limited multi-threading.
Huh? Servers take loads-of-cores as far as you possibly can! Zen2 parts announced the other day, they'll give our servers something like 256 threads! Even embedded parts have many cores; look at every mobile processor. But here's the best part; if you design your software to run well on computers... it does! Multi-core focused software tends to perform better on single-core setups than software that was written for single-core in my experience. My most surprising example was when we rebooted our engine in 2005 for XBox360 and PS3 because we needed to fill 6-8 cores with work and our PS2 era architecture did not do that effectively. At the time, we worried about how the super-scalar choices we were making would affect Gamecube which still had just one core. It was a minor platform so we thought we'd just wear the loss to minimise tech baggage... boy were we wrong! Right out of the gate, our scalability-focused architecture ran better on the single-core machines than the previous highly mature code that had received years of optimisation. It looked like there were more moving parts in the architecture, but it still ran meaningfully faster. The key reason was proper partitioning of work. If you write a single-threaded app, you are almost 100% guaranteed to blatantly disregard software engineering in favour of a laser focus on your API and user experience, and you will write bad software as a result. Every time.
