For the curious: I looked at Mike Acton's concurrency slides (https://cellperformance.beyond3d.com/articles/) and implemented several versions of Increment Problem and River Crossing Problem. Some good resources: Game Engine Architecture book, Abrash's Black Book (for free at http://www.jagregory.com/abrash-black-book/), Intel Intrinsics Guide (https://software.intel.com/sites/landingpage/IntrinsicsGuide/), of course https://godbolt.org/ for disassemblies #theFurnace
@npisanti For now I want to play with it directly, but if I need a wrapper I will try xsimd :)
@jakub good idea! i really need a wrapper as i run things on both linux64 and ARM (and occasionally all the other platforms)
@jakub also if haven't, you should check out the "Effective C++" books ( I should really get a copy of the "Effective Modern C++", I feel like a bad student )
@npisanti Thanks, I will have a look!
@jakub might want to have a go at these in rust where they're trivial and fun :D
@_discovery I wrote a bunch of Rust recently and I had a lot of fun! Shirley's Ray Tracing in One Weekend trilogy (parallelized with rayon) and most of Advent of Code.
Most of the bugs I made in C++ could never happen in Rust, e.g. uninitialized memory, reading out of bounds, use after free etc.
That said, I will be probably looking for a job later this year and sadly C++ seems to be the most reasonable choice: there are no Rust jobs around and I don't like to work in enterprise Java.
Revel in the marvels of the universe.