C++/core Java, low-latency, high frequency trading, NY/Ch

User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by АццкоМото »

crypto5 wrote:Ну а выдирать цитаты мои и чужие из контекста это вообще достаточно тупой тролизм.
Тупой троллизм - это доказывать, что сознательно запихивать код в песочницу, которая во-первых не бесплатна, а во-вторых не дает по определению никаких гарантий отзывчивости в low latency системах, это о-кей, при этом используя в качестве аргумента опенсорсные проекты и абсолютно игнорируя практику реальных людей, которые, в том числе, присутствуют на этом форуме и едят этих устриц каждый день
Я уже не говорю про здравый смысл, понятно, что взывать к нему просто бесполезно
Мат на форуме запрещен, блдж!
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by dotcom »

Orest wrote: Серьезно, всегда интересно послушать человека, кот. есть что сказать по существу.
Ну я рад за этого товарища, который написал статью про все и ни о чем. Из длинного вступления мы узнали, что HFT - это понятие растяжимое и похоже на voodoo. :)
Вы найдите сначала работу, а потом нам расскажите про производительность. Это даже не смешно обсуждать. А основы - это overhead C++ по сравнению с C. Object Model http://www.amazon.com/Inside-Object-Mod ... 0201834545 metaprogramming (основы) http://amzn.com/0321227255 и.т.д. Про memory management от Саттера: http://channel9.msdn.com/posts/C-and-Be ... tter-Why-C
По вашим высказываниям видно, что вы основы пропустили. Если я ошибся, то глубоко извиняюсь.
Очевидно, что проблему скорости в HFT пытаются решить влоб, используя каждый такт процессора и путем распараллеливания, где тоже масштабирование может быть решено за счет увеличения кол-ва процессоров. Когда алгоритмы надо перекладывать Matlab или еще откуда, то зачастую удобнее использовать функциональный язык, который более понятен математику. Отсуюда и попытки использовать Erlang, OCaml и им подобные. Где-то, наверное, испольщуют Жабу. Банковский бэкенд, аналитика и много всего вокруг HFT, где скорость не так важна, пишут на Жабе и знания чего-то особенного для индустрии там очевидно не важны. Наверное, надо хорошо знать хорошо concurrency. Но если вы не разбираетесь в этой области, то какой из вас Жаба программист тогда?
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by dotcom »

Alexandr wrote: да я не спорю, писать то можно, + старое поддерживать
просто, имхо, уже нет смысла
Не, не старое. Ядро ковыряют. Там C++ просто нет. Система бежит на кастомном железе под рутом. Экономят на IPC, что разумно. Это вобще сейчас тренд, особенно в сетевых облаках даже за пределами HFT. Если нужно оптимизировать networking до экстрима, то kernel->user становится bottleneck'ом, к сожалению.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by crypto5 »

АццкоМото wrote:
crypto5 wrote:Ну а выдирать цитаты мои и чужие из контекста это вообще достаточно тупой тролизм.
Тупой троллизм - это доказывать, что сознательно запихивать код в песочницу, которая во-первых не бесплатна, а во-вторых не дает по определению никаких гарантий отзывчивости в low latency системах, это о-кей, при этом используя в качестве аргумента опенсорсные проекты и абсолютно игнорируя практику реальных людей, которые, в том числе, присутствуют на этом форуме и едят этих устриц каждый день
Я уже не говорю про здравый смысл, понятно, что взывать к нему просто бесполезно
Я не вижу здесь никакого тролизма, и я вам ничего не доказываю. Я просто обратил внимание что есть случаи применения джава для hft, ну а дальше вы начали нести простыни каких то фантазий, лирических отступлений про Петра Семеновича и барона Порше, и досужие оценки моего здравого смысла без какой либо аргументации.
In vino Veritas!
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Alexandr »

Orest wrote:
Medium-rare wrote:
Orest wrote: http://adtmag.com/articles/2011/07/29/w ... aries.aspx

Серьезно, всегда интересно послушать человека, кот. есть что сказать по существу.
Где же там пойнт про преимущества C над C++ в low latency? Там разное, включая системы на Visual Basic 6, к которым один гуру на C++ таки приписывал алгоритмы, использовал, но иногда.
Вопрос-то был очень прост. Чего надо знать по Java для HFT? To что Java нужна для HFT - это не вопрос, просто поищите на indeed по ключевым словам.
мои 5 копеек:
-java core включая multithreading (вот check list по многопоточности http://www.rsdn.ru/forum/java/3622844.1.aspx)
-как языковые конструкции влияют на VM (книжка называется java performace turning или как-то так)
-как "отключить" (минимизировать) GC
-linux и чем конкретно java напрягает ОС
-сеть и как ее тюнинговать (linux)
-как устроен процессор и кеши и желательно память (по крайней мере понимать общий смысл RAS-CAS latency и прочее)
-понимать как оптимизируется cpu intensive code

ну и помимо иметь хороший server-side бекграунд безотносительно языка
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Alexandr »

dotcom wrote:
Alexandr wrote: да я не спорю, писать то можно, + старое поддерживать
просто, имхо, уже нет смысла
Не, не старое. Ядро ковыряют. Там C++ просто нет. Система бежит на кастомном железе под рутом. Экономят на IPC, что разумно. Это вобще сейчас тренд, особенно в сетевых облаках даже за пределами HFT. Если нужно оптимизировать networking до экстрима, то kernel->user становится bottleneck'ом, к сожалению.
да, про ядро то я и забыл, вы правы
насчет сети - тоже правы - мы пока не используем, пока вот долез сюда, может себе возьмем

tcp стек в user моде полностью
http://www.openonload.org/download.html

+насчет сети - модно стало реализовывать часть функциональности, которая есть в tcp, а остальное выбрасывать
например "Datagram Congestion Control Protocol" - Congestion Control от tcp оставили, выкинули контроль окна + рестарт пакетов + in order delivery
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by dotcom »

Alexandr wrote: +насчет сети - модно стало реализовывать часть функциональности, которая есть в tcp, а остальное выбрасывать
например "Datagram Congestion Control Protocol" - Congestion Control от tcp оставили, выкинули контроль окна + рестарт пакетов + in order delivery
TCP - это отдельная история. Стэк сам по себе можно реализовать эффективно, да и родные имплементации в ОС'ах отполированы до блеска. IPC жрет ресурсов на порядок больше. Не сам стек, а TCP как протокол для HFT - хренов. Тут вопросов нет. Там пределам изваращений нет. Есть SCTP, но я лично не знаю, кто его использует по крайней мере публично. В WebRTC вот будут. Чаще имплементируют свой собственный протокол поверх UDP. Тюнят даже роутеры. В какую контору сейчас не сунься, у всех свой собственный а)сетевой протокол, б)самый быстрый в мире XML парсер, в)забористый фреймворк для всего на свете. :D
Orest
Уже с Приветом
Posts: 543
Joined: 25 Jul 2001 09:01
Location: South Ukraine -> South West

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Orest »

Alexandr wrote:
Orest wrote:
Medium-rare wrote:
Orest wrote: http://adtmag.com/articles/2011/07/29/w ... aries.aspx

Серьезно, всегда интересно послушать человека, кот. есть что сказать по существу.
Где же там пойнт про преимущества C над C++ в low latency? Там разное, включая системы на Visual Basic 6, к которым один гуру на C++ таки приписывал алгоритмы, использовал, но иногда.
Вопрос-то был очень прост. Чего надо знать по Java для HFT? To что Java нужна для HFT - это не вопрос, просто поищите на indeed по ключевым словам.
мои 5 копеек:
-java core включая multithreading (вот check list по многопоточности http://www.rsdn.ru/forum/java/3622844.1.aspx)
-как языковые конструкции влияют на VM (книжка называется java performace turning или как-то так)
-как "отключить" (минимизировать) GC
-linux и чем конкретно java напрягает ОС
-сеть и как ее тюнинговать (linux)
-как устроен процессор и кеши и желательно память (по крайней мере понимать общий смысл RAS-CAS latency и прочее)
-понимать как оптимизируется cpu intensive code

ну и помимо иметь хороший server-side бекграунд безотносительно языка
Спасибо, хороший список.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Medium-rare »

Orest wrote: Вопрос-то был очень прост. Чего надо знать по Java для HFT? To что Java нужна для HFT - это не вопрос, просто поищите на indeed по ключевым словам.
У вас там ещё был пост про UHFT и HFT. Мне ничего искать не надо. :-)
... and even then it's rare that you'll be going there...
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Medium-rare »

Alexandr wrote:
Medium-rare wrote:Ерунда, конечно, про принципиальную разницу в latency между C и C++.

И там, и там, только от конкретных приёмов программирования зависит, можно вдруг увеличить latency, главным образм, от dynamic allocation. Что new/delete неразумно навтыкать, что malloc/free.
все что нужно выделить, выделяется заранее, поэтому на критических участках кода выделений памяти (ровно как и освобождений) просто нет :)
И никакой принципиальной разницы между C и C++ в этом аспекте нет. Но на одном из них сильно продуктивнее программировать, и это не C.
... and even then it's rare that you'll be going there...
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by АццкоМото »

crypto5 wrote:Я просто обратил внимание что есть случаи применения джава для hft, ну а дальше вы начали нести простыни каких то фантазий, лирических отступлений про Петра Семеновича и барона Порше, и досужие оценки моего здравого смысла без какой либо аргументации.
Мы только что выяснили, что есть и случаи применения VB6 "для HFT". Желаю успехов с этим фактом
Если подумать над ситуацией еще, то можно выяснить, что в мире HFT есть не только Джава, но и разносчики пиццы и даже кто-то моет туалеты. Так вот у джавистов прав требовать заоблачную зарплату ничуть не больше, чем у разносчиков пиццы - они не критичное звено. И если бы здравый смысл у вас присутствовал, вы бы смогли сами до этого дойти, чуть проанализировав мои лирические отступления
Мат на форуме запрещен, блдж!
vtl
Уже с Приветом
Posts: 2131
Joined: 17 Jan 2011 00:24

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by vtl »

Alexandr wrote:насчет сети - тоже правы - мы пока не используем, пока вот долез сюда, может себе возьмем

tcp стек в user моде полностью
http://www.openonload.org/download.html
К нему недешёвую SolarFlare надо.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by crypto5 »

АццкоМото wrote:
crypto5 wrote:Я просто обратил внимание что есть случаи применения джава для hft, ну а дальше вы начали нести простыни каких то фантазий, лирических отступлений про Петра Семеновича и барона Порше, и досужие оценки моего здравого смысла без какой либо аргументации.
Мы только что выяснили, что есть и случаи применения VB6 "для HFT". Желаю успехов с этим фактом
Если подумать над ситуацией еще, то можно выяснить, что в мире HFT есть не только Джава, но и разносчики пиццы и даже кто-то моет туалеты. Так вот у джавистов прав требовать заоблачную зарплату ничуть не больше, чем у разносчиков пиццы - они не критичное звено. И если бы здравый смысл у вас присутствовал, вы бы смогли сами до этого дойти, чуть проанализировав мои лирические отступления
По моему это как раз ваши утрирования потеряли связь с здравым смыслом.
In vino Veritas!
vtl
Уже с Приветом
Posts: 2131
Joined: 17 Jan 2011 00:24

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by vtl »

crypto5 wrote:По моему это как раз ваши утрирования потеряли связь с здравым смыслом.
По-моему, у вас просто разные ощущения low latency: кому-то нетэгированный TLB - беда-беда, огорчение, а кому-то GC на преаллоцированной памяти не вызывается, и то хорошо :)
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by crypto5 »

vtl wrote:
crypto5 wrote:По моему это как раз ваши утрирования потеряли связь с здравым смыслом.
По-моему, у вас просто разные ощущения low latency: кому-то нетэгированный TLB - беда-беда, огорчение, а кому-то GC на преаллоцированной памяти не вызывается, и то хорошо :)
Ну в статье Фаулера далеко не о ГЦ речь.
In vino Veritas!
User avatar
Jerry
Уже с Приветом
Posts: 2252
Joined: 06 May 2006 21:45
Location: USSR->Israel->NY

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Jerry »

Orest wrote:Если робот думает секунды, то почти не важно на чем. :fr:
Если робот думает секунду, то он думает примерно в 30,000 раз медленнее, чем он должен думать, чтобы поспевать за роботами конкурентов, что будет моветон. И это не просто красивая цифра, а суровые будни low latency.

ОП - цифра 220К выглядит адекватной.
Willy Wonka
Уже с Приветом
Posts: 632
Joined: 23 Oct 2006 19:55
Location: London

Re: C++/core Java, low-latency, high frequency trading, NY/C

Post by Willy Wonka »

Orest wrote:C++/core Java, low-latency, high frequency trading, NY/Chicago (not quantitative analytics, just а programming ).

Вот решил сменить тематику после многих лет. И тема вроде знакома (как хобби).
Интересует недавний опыт устройства на такие позиции в НЙ/Чикаго. Реально ли без опыта в финансах/трейдинге получить сениор оффер с хорошим знанием
Java internals, design patterns, low latency dev, distributed cache dev., etc. Было-бы интересно знать чего от вас хотели на интевью и какие реальные зарплаты в этой области. Я считаю мой недавний звонок из Citi и предложением 140К просто шуткой или я не прав? Просто если в среднем зарплаты в HFT как эта озвученная, я ,пожалуй, дергаться не буду.

Реально в маленькие prop шопы, которых в Чикаго очень много.

Return to “Работа и Карьера в IT”