I'm interested in latency hiding patterns as I repeatedly see them being implemented at all levels of systems from the silicon to the top of the application stack. Often latency hiding techniques are what deliver better-than-Moore's law performance improvements and can have great impacts to usability as well as throughput and system efficiency.
I would describe latency hiding techniques as things that :
- Maximise the value of communication
- Maximise the concurrency of communication and computation
Communication and computation concurrency is maximised by maximising the independence of communication and computation. This requires understanding the dependencies between computation and communication.
Right, all very abstract. Let's hope some examples are more interesting.