We've been working on Rayne quasi 2.0 since a bit now (this is not a product announcement, just a segue), and parts of it is a completely rewritten thread pool, which supports better synchronization primitives and gives some more guarantees and freedom with regards to execution, as wall as quality of service. And I can't help but feel in awe of the x86 architecture: My i7 has almost 200 registers and somewhere around 250+ instructions in the pipeline at any given point in time.

x86 is not just an assembly language, it's a masterpiece of engineering effort and an unpredictable cunt. You can shoot your performance to hell by misaligning data, but can achieve exceptional performance gains by intentionally misaligning other data so that it falls into two cache lines. Oh, and then there is this whole SMT concept next to SMP where a single fucking core represents itself as two logical core, where sharing semantics become a little bit different again.

It's amazing that spinning for a couple of thousand cycles can give you 10x performance gain over taking the current thread off of the CPU and incurring context switching penalties. What a great time to live in.

Last edited by WretchedSid; 03/25/15 19:19.

Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com