Posted on April, 21, 2017

Written by Najim , Software Developer, Chicago

Posted in Technology

In today’s financial markets, trading happens in an exceedingly competitive technological landscape. Only the best trading ideas empowered by robust, scalable and fast technology succeed. While performance can be the defining factor for a profitable strategy, you don’t need to be clever all the time, you just need to be right, and that means knowing what you’re talking about.

 A quick Google search of ‘performance’ yields myriad unsatisfying definitions, meaningless without context. At IMC, performance of our trading execution systems refers to our speed in responding to events in the financial markets. Understanding key performance terms allows us to mathematically model our systems correctly and optimize performance.

  • Response Time is the time a system takes to react to a given input. It is equivalent to latency + service time.
  • Latency is the state of being latent, or simply put, how long we are waiting to be serviced.
  • Service Time is the time it takes to complete a task/service.
  • Throughput is the rate at which something can be processed. This often describes our bandwidth – our maximum throughput.
  • Scalability is the proportional increase in throughput we gain when we add more resources. 

For example, imagine you’re waiting in line at the supermarket for a cashier. The latency is how long we wait in line, while the service time is how long the cashier takes to process our purchase. Our response time is both. Throughput is how many customers cashiers can handle over time and scalability describes how many more customers you can handle if you add another cashier.

Cashiers typically have a conveyor belt instead of trying to fit two cashiers in the same space. Here, the dominant cost is handing products to a cashier, not the number of cashiers. It’s not intuitive to preload a cashier while another customer is being serviced to increase throughput! 

The next article in this series focuses on using these terms to understand the limits of our performance by looking at the implications of queuing theory and other models we can use.