Marcus Gründler talks about high performance software at the JAX Finance 2016 conference in London.
Analyzing financial transactions data of a large number of portfolios and hundreds of millions transactions and quotes is a demanding job for any computing environment.
Analysis systems don't necessarily have extremely low latency requirements such as trading systems do, but have to provide low user response times. Applying massive parallelism over CPU cores or even clusters of machines doesn't help much if you want to achieve response times of a few milliseconds.
Unleashing the extreme power of todays CPUs with a stream oriented architecture - which is optimal for utilizing caches and branch prediction of modern CPUs - becomes the corner stone in such systems.
The talk presents insights into a system that is based on the idea of multi version concurrency control (MVCC) using Apache Kafka and binary in-memory data representation. Learn how to achieve speed improvements of a factor of 100-200 times compared to classic object oriented design.
26. Cache-oblivious Algorithms
• Optimized for minimal memory transfer
• All computation with L1 cache
• Cache-“oblivious“: no knowledge about
cache hierarchy
• Keeps CPU permanently „under pressure“
• Empowers cache prefetching