[erlang-questions] trading systems
Thu Oct 1 18:04:12 CEST 2009
On Oct 1, 2009, at 4:50 PM, Kenneth Lundin wrote:
> It would be nice if you could explain what the system needs to do
> and after that
> why you think it is a problem to store prices in an ETS-table.
> Why are you talking about mmapped files? Please explain for a novice
> in trading systems.
It's high-frequency trading systems I'm talking about. Where's Serge
Aleynikov  when you need him?
I'd like to process an incoming price quote, make a decision and
submit a trade order with minimal latency. I know that this is
normally done using C++ (or OCaml ) but I'm wondering how this can
be achieved using Erlang.
Minimal latency is usually achieved by hitting the CPU cache as
frequently as possible and minimizing memory copying overhead. ETS
copies memory and I suspect it's use of the cache is rather poor by
virtue of being a "hash table" and pointing all over the place in
A simple array of floats or doubles groups data together in memory and
is very cache friendly. I figure that an Erlang binary is the closest
I can get to an array in Erlang. mmap-ing a file of floats or doubles
and wrapping it in a binary should avoid unnecessary copying of data
from disk to memory.
I think operating on binaries representing mmap-ed files of price
quotes is as close as you can get to low latency in Erlang. I know
that premature optimization is the root of all evil but I'd rather
have my teeth pulled than optimize Erlang. This is speaking from
experience. I figure a much better way is to choose a concept that
guarantees fast code from the start.
fastest mac firefox!
More information about the erlang-questions