4 ms·
What is a use case for optimizing interprocessor latency?
by jakemal 7y ago
What is a use case for optimizing interprocessor latency?
- lonelappde 7y agoFinishing a high priority job sooner.
- monocasa 7y agoLike TLB shootdown IPIs.
- anonymoushn 7y agoHello, I wrote some software at an automated trading firm that would do the subset of "parsing ticks and maintaining order books" sufficient to map ticks to symbols, and no more work than that. My code was pinned to one core and spun waiting for an expensive network card to DMA some ticks into memory, then when ticks we cared about were found it would load them onto one or more queues. Each queue corresponded to a different thread spin waiting on its own pinned core. So one use case is "transforming ticks into trading decisions slightly faster than you otherwise could"
- twic 7y agoComment-OP here - this is also more or less my use case. Whether there is a use case for spinlocks outside low-latency trading, i have no idea!
- anonymoushn 7y agoa friend of mine recently told me how Windows schedules cpu-bound threads to different cores to prevent thermal throttling, so I now wonder if we were mucking things up by running our CPUs too hot
- kortilla 7y agoHigh performance networking in general (NFV) frequently relies on cores dedicated to dpdk for the this.
- AstralStorm 7y agoSoftware industrial process control, such as motors and let robotics. The longer latencies make the control loop less responsive or unstable. Microseconds granularity is very useful there.
- brobinson 7y agoCheck out DPDK/VPP and the LMAX Disruptor paper.
- shitgoose 7y agoAnd do not forget Chronicle Queue.
- dfox 7y agoEssentialy any true HPC workload. You can go pretty far by ignoring latency and doing some series of map and reduce stages on top of giant conceptual file with large-ish records. There are workloads where data for these partial parallel jobs are on the order of machine word or two and then you really care about communication latency between cores.