[erlang-questions] What does "soft" real-time mean?

Avinash Dhumane nistrigunya@REDACTED
Fri Oct 20 15:58:18 CEST 2017


Hello!

The application runs directly on latest Intel Xeon.

The source code of specific module in question is emailed to you separately.

There is a process per instance of "algorithm trading strategy", but no two
processes share anything except the ordering socket to the market, which is
accessed through synchronization (ETS). But, during the market test, we run
only one or two strategies so there is no synchronization overhead.

The major computation is market depth update and price matching.

On Fri, Oct 20, 2017 at 6:55 PM, Aleksander Nycz <Aleksander.Nycz@REDACTED
> wrote:

> Hello,
>
>
> My private definition:
>
> Hard real time -> 100% requests/jobs/processes must be completed before
> deadline
>
> Soft real time -> N% requests/jobs/processes must be completed before
> deadline, where N < 100%,
>
>     so we can/must accept that some jobs will not be finished on time.
>
>
> And few question:
>
> 1. Erlang VM is running on Virtual Machine on bare metal?
>
> 2. What you erlang process really do? Can you show us some code?
>
>
> Regards
>
> Aleksander Nycz
>
> W dniu 2017-10-20 o 14:00, Avinash Dhumane pisze:
>
> I have programmed high-frequency trading application in Erlang and
> comparing its reaction performance in the live market with other competing
> applications (mostly, in C).
>
> It has been a consistent observation that my Erlang application lags
> substantially behind the competing applications. In fact, it never matched
> the reaction time of the so-called "slowest" C application in the market.
>
> The benchmark reaction time is about 5 microseconds. It is the time
> elapsed between tick to order. That is, the difference between the
> timestamps when I receive the tick (market event) from the mailbox of my
> process and when I submit the TCP send call on my order.
>
> My process maintains the market depths of the securities and when my
> desired price (as a function of best buyers and/or sellers on multiple legs
> of the order) is observed, I compute the order terms and submit.
>
> The entire computation and communication (with the market) takes place
> within the single process and there are no collaborating processes (hence,
> no inter-process messaging; not even ETS). Still, the reaction time is in
> the order of 20 to 60 microseconds - that is, nowhere closer to the
> benchmark reaction time (5 microseconds).
>
> What I wish to hear from the experienced people on this forum here is
> whether I am missing on something in my Erlang code, or should I just go
> ahead and program in C.
>
> Thanks.
>
>
> _______________________________________________
> erlang-questions mailing listerlang-questions@REDACTED://erlang.org/mailman/listinfo/erlang-questions
>
>
> --
> Aleksander Nycz
> Chief Designer
> Telco_021 BSS R&D
> Comarch SA
> Phone:  +48 17 785 5909
> Mobile: +48 691 464 275
> website: www.comarch.pl
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20171020/f3abcbd8/attachment.htm>


More information about the erlang-questions mailing list