Návrh a vývoj obchodovacích systémů. 29. dubna 2015

Podobné dokumenty
Uklízení odpadků a analýza úniku

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Ing. Igor Kopetschke TUL, NTI

Operační systémy. Tomáš Hudec.

Petr Holášek / 1 of 21

Úvod do Web Services

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

ReDefine Midrange Storage VNX/VNXe. Václav Šindelář, EMC

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Virtualizace. Lukáš Krahulec, KRA556

11. Přehled prog. jazyků

Procesy a vlákna (Processes and Threads)

Michal Hroch Server Product Manager Microsoft Česká republika

Paralelní programování

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Operační systémy. Přednáška 1: Úvod

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Matematika v programovacích

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

a co je operační systém?

2010/2011 ZS. Operační systém. úvod základní architektury

Profilová část maturitní zkoušky 2017/2018

Úvod do Linuxu. SŠSI Tábor 1

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

Brno. 30. května 2014

Copyright 2012 EMC Corporation. All rights reserved.

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Pokročilé architektury počítačů

Stavba operačního systému

Procesy a vlákna - synchronizace

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Služba ve Windows. Služba (service) je program

Základní typy struktur výpočetních systémů

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Identifikátor materiálu: ICT-1-08

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

PB002 Základy informačních technologií

Úvod. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík,2016

Management procesu I Mgr. Josef Horálek

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Profilová část maturitní zkoušky 2013/2014

pouˇzití USB nebo SPI

Osobní počítač. Zpracoval: ict Aktualizace:

09. Memory management. ZOS 2006, L.Pešička

Nvidia CUDA Paralelní programování na GPU

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Implementace systémů HIPS: historie a současnost. Martin Dráb

Systém adresace paměti

Internet Information Services (IIS) 6.0

Komunikace. Úrovová architektura protokol. Úrovová architektura protokol (2) Pednášky z distribuovaných systém

Vláknové programování část I

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Struktura pamětí a procesů v DB Oracle. Radek Strnad

FIREBIRD relační databázový systém. Tomáš Svoboda

Nasazení webových služeb do enterprise prostředí. Petr Steckovič

Neměnné objekty. Tomáš Pitner, upravil Marek Šabo

Principy operačních systémů. Lekce 1: Úvod

ISPforum 2016 Jezerka NAT++

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Programovatelné automaty SIMATIC S7 a S5

Metody připojování periferií BI-MPP Přednáška 2

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Témata profilové maturitní zkoušky

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Management procesu II Mgr. Josef Horálek

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

IS RŽP. informační systém pro vedení živnostenského rejstříku a jeho propojení na registry veřejné správy. Ministerstvo průmyslu a obchodu

PB153 Operační systémy a jejich rozhraní

Od CGI k FastCGI. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Monitoring SQL Server, Resource Governor, Tracing SQL Server

MASSIV. Middleware pro tvorbu online her

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

NSS - Cache 5. LECTURE MARTIN TOMASEK

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

Paralelní programování

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

java remote method invocation Kateřina Fricková, Matouš Jandek

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Pavel Procházka. 3. prosince 2014

Architektura Intel Atom

PROCESOR. Typy procesorů

Transkript:

Návrh a vývoj obchodovacích systémů 29. dubna 2015

Agenda Základní principy obchodování na burzách cenných papírů Využití znalostí z MFF Zásady vývoje real-time obchodovacích systémů Demo platformy DET Hub Prostor pro vaše otázky

Market Depth Vol Bid Offer Vol 256 10.5 10.8 5 15 10.2 10.9 154 1000 9.9 10.10 12 10.12 20 10.15 900

Simple Trading Screen

Trading Floor

Napojení na burzu Každá burza nabízí rozhraní pro Příjem orderů a kotací Market data Protokoly Komunikace založená na výměně zpráv Binární ETS, OUCH Member Exchange Textové FIX XML Arena Trading Platform Market Data Matching Engine

Vlastnosti obchodovacích systémů Low-latency: Důraz kladen na rychlost odezvy systémů (mikrosekundy) Low-jitter: stabilita zpracování událostí High-throughput: Zpracování tisíců událostí za vteřinu Robustnost High Availability Fast Recovery

Příklad Calc Server1 Pricing Exchange 1 Trader1 Business Server Calc Server2 Gateway Trader2 Calc ServerN Quoting Exchange 2 TraderN Exchange N

Užitečné kurzy na MFF Teoretické přednášky Algoritmy Datové struktury Složitost Praktické přešdnášky Operační systémy I, II Middleware Programování v UNIXu

Zásady vývoje real-time obchodovacích systémů Multi-threading Paměť Asynchronní programování Actor model Garbage collection Cache

Asynchronní vs synchronní přístup Synchronní volání Asynchronní volání

Zámky 2 vlákna (zámek) 1 vlákno

Zámky II

Mutable vs Immutable objects Mutable Immutable

Actor Model The actor model in computer science is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond...

Paměť Rychlost paměti je řádově nížší než rychlost CPU Optimalzace datových struktur = zvýšení výkonu Vyšší programovací jazyky ulehčují práci s pamětí Garbage Collection

Memory Cache Přístup do hlavní paměti je řádově pomalejší než do registrů a L1, L2, L3 cache CPU nahrává data z hlavní paměti do cache v tzv. cache lines (typicky 64 bytů)

Memory cache příklad Přidej 10 milionů integerů do listu 10 milion krát odeber první prvek a dej ho nakonec

LinkedList vs RingBuffer LinkedList RingBuffer

Flyweight Pattern Optimalizace cache miss problému

Flyweight Pattern použití

Garbage Collector Výkon komplexních systémů je výrazně ovlivněn délkou Garbage collection Ztráta výkonu 2% na 1 procesoru = ztráta výkonu 40% na 32 procesorech

Garbage Collector II Standardní implementace JVM a CLR používají stop-the-world garbage collection Všechny thready zastaveny na potenciálně velmi dlouhý časový interval

Prevence Stop-The-World Použití komerční JVM, která nepodléha STW a zajišťuje continuous garbage collection Azul Zing Použití programovacích technik, které zajišťují, že během vykonávání programu se nevytváří žádné nebo naprosté minimum objektů Object Pools Offheap Structures předvytvořená množina objektů, které se používají stále dokola Alokace objektů v paměti mimo heap, která nespadá pod GC management klient požádá pool o objekt, provede s ním operace, které potřebuje a vrátí ho zpět do poolu Vlastní management paměti (alokace/dealokace) jako v C V JVM využití sun.misc.unsafe

False Sharing Vzniká v případech kdy dvě či více vláken modifikují vzájemně nezávislé proměnné, které sdílí stejnou cache line Na první pohled obtížné odhalit Je potřeba znát Memory Layout Řešení: padding Související data v souvisejících blocích pamětí

False Sharing příklad Spusť N vláken a v každém vlákně 500 milion krát změň nezávislou proměnnou

False Sharing výsledky

Warm-Up Standardní implementace JVM a CLR používají JIT a run-time optimalizace kódu Systémy po startu vykazují sníženou výkonost

Výběr vhodného HW dostatek jader dodržovat pravidlo core per application thread + jádra pro obhospodaření OS ideálně 2-socket řešení... celý OS běží na jednom socketu a aplikace samotná na socketu druhém viz OS Tunning CPU s co nejvyšší nominální + turboboost frekvencí CPU s co největší cache Dostatek operační paměti Oddělené SSD disky pro OS a aplikaci samotnou Použití High-performance síťových karet - např SolarFlare umožňují preskočení OS Kernelu při zpracování síťového přenosu Zajištění, aby sběrnice, ve které je síťová karta byla na stejném NUMA node jako Socket, který bude přiřazen dané aplikaci

OS Tunning Pro docílení nejvyššího a především stabilního výkonu je nezbytné se při nasazování systému zaměřit také na samotný operační systém Často se jedná o několikadenní proces, který je závislý na použitém HW a OS, tudíž neexistuje jednoznačný a všudefungující postup Izolování jader pro danou aplikaci... taskset, isolcpu, numactl Zakázání IRQ přerušení na jádrech, na kterých beží aplikace... irqbalance Zajištění, že všechny systemové procesy a služby běží na jádrech, na kterých neběží aplikace samotná Priřazení jednotlivých aplikačních vláken daným jádrum... zachování pravidla thread per core taskset nebo Java-Thread-Affinity knihovna Správné nastavení kernel parametrů - vm.min_free_kbytes, vm.swappiness, transparent huge pages a další Diagnostika jitteru: jhiccup (Azul), sysjitter (SolarFlare)

OS Tunning příklad CPU affinity Posílání multicast zpráv přes dummy interface zajistí, že samotná síť nebude ovlivňovat výsledky Sender:

OS Tunning příklad CPU affinity Receiver:

OS Tunning příklad výsledky Spuštění bez použití CPU affinity: java MultiCastReceiver 230.0.0.1 dummy java MultiCastSender 230.0.0.1 dummy 20000000 Spuštění s použitím CPU affinity: taskset -c 2 java MultiCastReceiver 230.0.0.1 dummy taskset -c 4 java MultiCastSender 230.0.0.1 dummy 20000000

DET Hub Univerzální obchodovací systém Umožňuje propojit libovolný počet systémů, které komunikují různými protokoly Jádro systému nezávislé na protokolu Uživatel nastavuje pravidla pro zpracování zpráv Proprietary Trading Co. Mutual Funds Hedge Funds Banks Market Data TIBCO RV FIX ZERO MQ FIX TIBCO RV FAST PROPRIETARY FIX Broker Dealers Exchanges & ECNs MTFs

DET Hub - Výkon Žádné zámky Jádro systému nealokuje žádnou paměť na heapu Nedochází k GC Stabilní latence Speciální reprezentace zpráv v souvislých blocích paměti Unikátní persistenční vrstva

Situace na trhu práce Česká Republika poměrně málo rozšířený obor málo firem, kde je možné získat potřebné zkušenosti před odchodem do zahraničí Zahraničí velmi vysoká poptávka, předevsím ve světových finančních centrech jako jsou Londýn, New York, Singapore, Tokyo a další nadprůměrné finanční ohodnocení např v Londýně se standardní plat contractora (75% trhu) pohybuje mezi 450 až 800 liber na den MFF poskytuje ideální soubor základních znalostí potřebných pro prosazení se v daném oboru

Odkazy mechanical-sympathy.blogspot.com/ lmax-exchange.github.io/disruptor/ www.akka.io www.azulsystems.com www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

Kontakt info@det-tech.com