diff --git a/.gitignore b/.gitignore index fb27e66..b080dfe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ /result /.pre-commit-config.yaml /plantuml-images/ -presentation.pdf diff --git a/Makefile b/Makefile index 4b7f71d..871fa19 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,4 @@ -all: report.pdf presentation.pdf +all: report.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 $@ $< diff --git a/figs/component-diagram.png b/figs/component-diagram.png deleted file mode 100644 index aaa80d4..0000000 --- a/figs/component-diagram.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b380f9b0f8d9531bf79443f478db7cd975e462ec3bfd825bd45bbd052bdc0521 -size 21388 diff --git a/presentation.md b/presentation.md deleted file mode 100644 index 236377f..0000000 --- a/presentation.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -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