report/presentation.md

2.8 KiB

title author theme institute date colortheme fontsize urlcolor linkstyle aspectratio lang section-titles toc header-includes
IMC Internship Bruno BELANYI Frankfurt EPITA 2021-08-30 seahorse 10pt blue bold 169 en-US true true \setbeamertemplate{section page}{% \begingroup% \centering% \begin{beamercolorbox}[sep=12pt,center,colsep=-4bp,rounded=true,shadow=true]{section title}% \usebeamerfont{section title}% \insertsection% \par% \end{beamercolorbox}% \endgroup% } \addtobeamertemplate{navigation symbols}{}{% \usebeamerfont{footline}% \usebeamercolor[fg]{footline}% \hspace{1em}% \insertframenumber/\inserttotalframenumber% }

Introduction

IMC & Global Execution team

  • Market making firm
  • Multiple offices
  • Over 20 exchanges

Subject of the internship

The project is about benchmarking a new service we're building related to exchange connectivity. It would involve writing a program to generate load on the new service, preparing a test environment and analyzing the performance results. Time permitting might also involve making performance improvements to the services.

Motivation

  • Early feedback during development
  • Track regressions
  • Various scenarios

Additional work

  • Compatibility testing
    • Test both client and gateway processes
    • Test forward and backward compatibility
    • Similar to benchmark in its architecture

Work accomplished

Parameters of a run

  • Lab setup to mirror production
  • Multiple scenarios
  • Multiple exchanges and gateways

Workflow

  • Scenarios are exchange-agnostic
  • Running a benchmark locally and remotely in a transparent manner
  • Single command to run

Architecture

Component diagram{ height=80% }

Results

Sample plots, with timingscensored{ width=90% }

Compatibility testing

  • Existing tests only test single version of client and server in lock step
  • Forward and backward compatibility
  • Multi-process testing

Benefits of the internship

To the company

  • Framework to use for benchmarking gateways
    • Nicely integrated in IMC's build system
    • Easy to use for new exchanges
    • Easy to extend with new scenarios
  • Ground work on compatibility testing
    • Peace of mind
    • Ensure upgrades/downgrades happen smoothly
    • Reduce downtimes due to failures

To me

  • Part of a good team & company
  • Learn about finance sector
  • Deal with new problems I had not encountered before

Conclusion

Challenges of the internship

  • Integration among pre-existing code
  • Working conditions due to COVID
  • Debugging asynchronous, multi-process systems

Further work

  • Integrate with in-house change-point detection
  • Integrate with packet sniffing setup
  • More exchanges & scenarios