Compare commits
3 commits
7f22b3c337
...
e3daedf944
Author | SHA1 | Date | |
---|---|---|---|
Bruno BELANYI | e3daedf944 | ||
Bruno BELANYI | 0a0fb59978 | ||
Bruno BELANYI | 18a246b6e4 |
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
|||
/result
|
||||
/.pre-commit-config.yaml
|
||||
/plantuml-images/
|
||||
presentation.pdf
|
||||
|
|
5
Makefile
5
Makefile
|
@ -1,4 +1,7 @@
|
|||
all: report.pdf
|
||||
all: report.pdf presentation.pdf
|
||||
|
||||
report.pdf: report.md begin-document.tex config.yaml header.tex
|
||||
pandoc --defaults config.yaml
|
||||
|
||||
presentation.pdf: presentation.md
|
||||
pandoc -t beamer --filter pandoc-plantuml --dpi=300 -o $@ $<
|
||||
|
|
BIN
figs/component-diagram.png
(Stored with Git LFS)
Normal file
BIN
figs/component-diagram.png
(Stored with Git LFS)
Normal file
Binary file not shown.
123
presentation.md
Normal file
123
presentation.md
Normal file
|
@ -0,0 +1,123 @@
|
|||
---
|
||||
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
|
Loading…
Reference in a new issue