124 lines
2.8 KiB
Markdown
124 lines
2.8 KiB
Markdown
|
---
|
||
|
title: "IMC Internship"
|
||
|
author: "Bruno BELANYI"
|
||
|
theme: "Frankfurt"
|
||
|
institute: "EPITA"
|
||
|
date: 2021-08-30
|
||
|
colortheme: "seahorse"
|
||
|
fontsize: 10pt
|
||
|
urlcolor: blue
|
||
|
linkstyle: bold
|
||
|
aspectratio: 169
|
||
|
lang: en-US
|
||
|
section-titles: true
|
||
|
toc: true
|
||
|
header-includes: |
|
||
|
\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](figs/component-diagram.png){ height=80% }
|
||
|
|
||
|
## Results
|
||
|
|
||
|
![Sample plots, with timings
|
||
|
censored](figs/remote-plots-presentation-censored.png){ 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
|