JayBeams development environment for Fedora 24
3.7K
Another project to have fun coding.
The JayBeams library performs relative time delay estimation of market feeds. That is, given two feeds for the same inside quote data it estimates, in near real-time which one is faster, and by how much.
The US equity markets have a lot of redundant feeds with basically the same information, or where one feed is a super set of a second set. When one has two feeds an interesting question is to know how much faster is one feed vs. the other, or rather, how much faster it is right now, because the latency changes over time. There are (usually) no message IDs or any other simple way to match events in one feed vs. events in the second feed. So the problem of "time-delay estimation" requires some heavier computation, and doing this in real-time is extra challenging. The current implementation is based on cross-correlation of the two signals, using FFTs on GPUs to efficiently implement the cross-correlations.
You can find more details about the motivation, and the performance requirements on my posts
I confess, I wanted to learn how to program GPUs, and given my background this appeared as an interesting application.
I am pushing the code slowly. I want to make sure it compiles and passes its tests on at least a couple of Linux variants. This can be a challenge given the dependency on OpenCL libraries.
JayBeams is named after a WWII electronic warfare system. The name was selected more or less at random from the Wikipedia list of such systems, and is not meant to represent anything in particular. It sounds cool, in a Flash Gordon kind of way.
Content type
Image
Digest
Size
550.3 MB
Last updated
almost 9 years ago
docker pull coryan/jaybeamsdev-fedora24