Do you have any good sources for information about this concept? I'm having trouble understanding how a algorithm could produce useful work without allocating anything.
Do you have any good sources for information about this concept? I'm having trouble understanding how a algorithm could produce useful work without allocating anything.
They don't allocate any new memory but they do perform operations on an input and write it to an output. At least in the embedded world this is how this is often done. Considering the overlap between embedded software and HFT, I'd imagine most of these algorithms are going to be something along the lines of "Take in a massive but fixed size block of read only data and output a fixed size result." You can have allocated memory but it needs to be allocated at startup and be able to be consistently reused without need for reallocation.
If you want super low latency, the last thing you want is a memory allocator blocking in the middle of your highly optimised algorithm. Instead you allocate everything ahead of time and just reuse the memory over and over again.
Usually these are very niche use cases that can be packed into a special purpose library.
Check the openHFT repository from my original post.
You still have to have memory and use it though, somewhere.