3 ms·
Interestingly I think many people in the HPC community come across this discovery from the other direction. Traditional HPC code is often array based with very
by unfamiliar 11y ago
Interestingly I think many people in the HPC community come across this discovery from the other direction. Traditional HPC code is often array based with very little abstraction. This is very performant and easy to parallelise, but you miss out on all the good stuff from more "modern" programming languages and techniques. My own personal experience with trying to write code in a more modular, structured way has usually left me realising that there is a big performance drop (that can't be explained using the simplified CPU vs RAM mental model) and a vague feeling that I have been cheated. Didn't someone promise me "zero-cost abstractions?"
I would be interested to see a language or package that embodied these concepts. For example, something that let you feel syntactically like you were constructing an array of structs, but each set of struct members is laid out contiguously in memory, so in reality you are constructing something more like a struct of arrays.
- agentultra 11y agoSee Jonathan Blow's JAI language. It's exactly this.