Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений.
Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое — Chronicle Map.
В докладе я отвечу на вопросы:
+ Почему бывает эффективнее разбить систему, работающую с общим состоянием, на несколько отдельных процессов?
+ Зачем вам может захотеться распилить JVM на несколько частей?
+ Как добиться от key-value хранилища медианной latency меньше 1 микросекунды?
+ Как сделать репликацию, если она упирается в пропускную способность сети из-за слишком частых обновлений?
Развею миф о том, что Java — это медленно :)
Также, в докладе будет сравнение Chronicle Map с redis, one-nio и ConcurrentHashMap.
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
HighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2990.html
Мы ежедневно сталкиваемся с тем, что даже работающие более 15 лет в индустрии специалисты, путаются в понятиях и преимуществах и недостатках тех или иных архитектур больших СХД.
В своем докладе мы расскажем о разнице между distributed (распределенными), shared (общими) и параллельными файловыми системами, покажем, в каких задачах Scale In-системы превосходят Scale Out и наоборот.
...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
Сфера финансовых приложений и трейдинга выдвигает особые требования к системам обработки данных: ультракороткие задержки, конкурентные обновления (в т.ч. из разных процессов), репликация высокочастотных обновлений.
Существовавшие открытые key-value хранилища не справлялись, поэтому мы сделали свое — Chronicle Map.
В докладе я отвечу на вопросы:
+ Почему бывает эффективнее разбить систему, работающую с общим состоянием, на несколько отдельных процессов?
+ Зачем вам может захотеться распилить JVM на несколько частей?
+ Как добиться от key-value хранилища медианной latency меньше 1 микросекунды?
+ Как сделать репликацию, если она упирается в пропускную способность сети из-за слишком частых обновлений?
Развею миф о том, что Java — это медленно :)
Также, в докладе будет сравнение Chronicle Map с redis, one-nio и ConcurrentHashMap.
Технологии хранения для больших проектов / Сергей Платонов (RAIDIX)Ontico
HighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/2990.html
Мы ежедневно сталкиваемся с тем, что даже работающие более 15 лет в индустрии специалисты, путаются в понятиях и преимуществах и недостатках тех или иных архитектур больших СХД.
В своем докладе мы расскажем о разнице между distributed (распределенными), shared (общими) и параллельными файловыми системами, покажем, в каких задачах Scale In-системы превосходят Scale Out и наоборот.
...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда — и то, и другое.
Тезисы - http://www.highload.ru/2015/abstracts/1964.html
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPFlyElephant
Презентация с первого технического вебинара FlyElephant, на котором были рассмотрены основы распараллеливания С/С++ программ при помощи OpenMP и рассказано о функционале FlyElephant.
Видео презентации: https://youtu.be/X1bqBPnJaHM
Сайт FlyElephant: http://flyelephant.net/
ПРОГРАММА БЕТА-ТЕСТИРОВАНИЯ FLYELEPHANT: http://flyelephant.net/beta/
Исследования программно-конфигурируемых сетей в Оренбургском государственном ...ARCCN
Доклад Шухмана А.Е., Оренбургский государственный университет, на семинаре "Технологии программно-конфигурируемых сетей в научной и образовательной среде"
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
Tarantool - отечественная Opensource NoSQL база данных.
В докладе мы обсудим:
- Какое место занимают NoSQL базы данных в highload проектах?
Почему и для чего вам стоит NoSQL решения?
Какие NoSQL решения вы можете использовать?
- Рассмотрим, что из себя представляет Tarantool 1.6 - база данных и сервер приложений в одном лице.
Какие основные особенности Tarantool как NoSQL базы данных?
Lua как встроенный язык сервера приложений.
- Посмотрим, как можно начать использовать Tarantool в своих проектах, и сделаем первые шаги.
Как установить Tarantool.
Первый запуск и основы конфигурирования.
Модель данных.
Как создавать и работать с хранилищем данных.
Как использовать пакеты tarantool.
- Узнаем об интересных модулях и фичах Tarantool
Чем полезен application server
Tarantool http
Tarantool queue
- Познакомимся с сообществом Tarantool opensource
Почему сообщество - это важно?
Чем полезны opensource проекты начинающему разработчику?
ведение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity
сравнение производительности СУБД MySQL и PostgreSQL для "типичной задачи стартапа".
Презентация сопровождала тестовую online-сессию и потому не содержит результатов тестирования.
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
В процессе обновления высоконагруженных серверов раздачи видео (40Gbit/s с каждого сервера) со старого OpenSuSE 10.2 на новый CentOS 7 (время между релизами — 7 лет) мы столкнулись с рядом проблем — необъяснимый свопинг и запуски OOM killer, неравномерное распределение нагрузки по ядрам, обрывы соединений, скачки системной нагрузки на CPU.
В докладе будет рассказано о том, как мы боролись с этими проблемами и какие технологии для этого использовали.
Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
Оперативная память становится всё более дешёвой и производительной, что позволяет использовать её для хранения рабочего набора данных всё большего числа приложений. Хранение всех данных в оперативной памяти позволяет сделать их высоко доступными, а алгоритмы для работы с данными либо существенно упростить, либо ускорить, а иногда — и то, и другое.
Тезисы - http://www.highload.ru/2015/abstracts/1964.html
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPFlyElephant
Презентация с первого технического вебинара FlyElephant, на котором были рассмотрены основы распараллеливания С/С++ программ при помощи OpenMP и рассказано о функционале FlyElephant.
Видео презентации: https://youtu.be/X1bqBPnJaHM
Сайт FlyElephant: http://flyelephant.net/
ПРОГРАММА БЕТА-ТЕСТИРОВАНИЯ FLYELEPHANT: http://flyelephant.net/beta/
Исследования программно-конфигурируемых сетей в Оренбургском государственном ...ARCCN
Доклад Шухмана А.Е., Оренбургский государственный университет, на семинаре "Технологии программно-конфигурируемых сетей в научной и образовательной среде"
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
Tarantool - отечественная Opensource NoSQL база данных.
В докладе мы обсудим:
- Какое место занимают NoSQL базы данных в highload проектах?
Почему и для чего вам стоит NoSQL решения?
Какие NoSQL решения вы можете использовать?
- Рассмотрим, что из себя представляет Tarantool 1.6 - база данных и сервер приложений в одном лице.
Какие основные особенности Tarantool как NoSQL базы данных?
Lua как встроенный язык сервера приложений.
- Посмотрим, как можно начать использовать Tarantool в своих проектах, и сделаем первые шаги.
Как установить Tarantool.
Первый запуск и основы конфигурирования.
Модель данных.
Как создавать и работать с хранилищем данных.
Как использовать пакеты tarantool.
- Узнаем об интересных модулях и фичах Tarantool
Чем полезен application server
Tarantool http
Tarantool queue
- Познакомимся с сообществом Tarantool opensource
Почему сообщество - это важно?
Чем полезны opensource проекты начинающему разработчику?
ведение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity
сравнение производительности СУБД MySQL и PostgreSQL для "типичной задачи стартапа".
Презентация сопровождала тестовую online-сессию и потому не содержит результатов тестирования.
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
В процессе обновления высоконагруженных серверов раздачи видео (40Gbit/s с каждого сервера) со старого OpenSuSE 10.2 на новый CentOS 7 (время между релизами — 7 лет) мы столкнулись с рядом проблем — необъяснимый свопинг и запуски OOM killer, неравномерное распределение нагрузки по ядрам, обрывы соединений, скачки системной нагрузки на CPU.
В докладе будет рассказано о том, как мы боролись с этими проблемами и какие технологии для этого использовали.
Мы покажем, как можно перенести разработанные алгоритмы для работы с Big Data с минимальными изменениями исходных программ. Рассмотрим возможности по распараллеливанию счета на многоядерных процессорах (вычислительных кластерах) и графических процессорах, поддерживающих CUDA.
Машины баз данных: таксономия, анатомия, эволюция, ареал, воспроизведение / А...Ontico
РИТ++ 2017, Web-scale IT Сonference
Зал Владивосток, 6 июня, 16:00
Тезисы:
http://webscaleconf.ru/2017/abstracts/2555.html
Teradata, Exadata, Netezza и другие представители мира машин баз данных в этом докладе будут классифицированы, препарированы, а также будет обсуждена задача создания новых таких машин.
Все эти машины — не просто сбалансированные комплекты из серверных узлов с предустановленной СУБД в той или иной конфигурации. Во всех случаях в них реализованы программные специфики, подразумевающие применение архитектурных или аппаратных возможностей, недоступных «вразвалку» (хотя в некоторых случаях есть возможности по воссозданию отдельных их элементов в лабораторных условиях, и об этом тоже будет в докладе). Таким образом, этот материал не столько о том, в шкаф какого цвета разные вендоры упаковали свою продукцию, сколько об идеях, заложенных внутри этих комплексов.
...
Доклад от Parallels:
Методики тестировния производительности database-centric приложений
Описание: При работе над сложными продуктами в database-centric приложениях изменения в коде и тем более в SQL запросах к базе данных могут приводить к неожиданным падениям производительности или же деградации производительности приложения с ростом размера базы данных. Поэтому важно уметь как можно быстрее отлавливать и исправлять причины таких деградаций.
Доклад о том, как устроен процесс мониторинга производительности продукта автоматизации хостинга и облачных сервисов Parallels Automation, для которого определяющим фактором является производительность базы данных.
Компания покажет, как анализирует планы исполнения SQL запросов внутри PostgreSQL, как проверяет насколько быстро и эффективно в целом работают SQL запросы, как определяет стратегию дальнейшей оптимизации.
Similar to Пути увеличения эффективности реализации алгоритмов машинного обучения (20)
2. Для чего необходимо задумываться о скорости вычислений для ML?
1. Сокращаем время обучения алгоритмов.
2. Достигаем приемлемого времени перенастройки «на лету».
3. Больше факторов.
4. Большие объемы данных для обучения.
5. Возможность масштабирования.
6. Экономия средств.
4. Подходы к увеличению производительности ML распараллеливанием
Широкая - специфичная для GPU Узкая - специфична для CPU
SIMD vs SIMT vs SMT
5. Оптимизация одного потока вычисления
Когда используется:
• Возможности распараллеливания ограничены аппаратно либо алгоритмом
• Код исполняется параллельно, каждый из потоков необходимо
оптимизировать
Возможности:
В удачных случаях (например умножение матриц) – до 16 раз быстрее.
Исходная и оптимизированная программа на С
Например переход с оптимизированной Java версии на С дает
2х кратное ускорение работы программы.
Ограничения:
- Необходимо понимать архитектуру CPU который используется
- Скорость разработки замедляется и усложняется
7. Прежде чем начать оптимизировать….
1. Используйте профилировшик (gprof, valgrind, … )
2. Не использует ли приложение уже оптимизированный код BLAS
3. Если не использует, то перейти к матричной и векторной форме
работы с данными, и использовать BLAS
4. SIMD – иногда дает максимальный прирост
8. Бабий А.С. - apratster@gmail.com
Распараллеливание.
1. Часто ограничены аппаратным обеспечением и архитектурой.
2. KML, PBLAS, ATLAS
3. Когда CPU Multicore эффективнее GPU ?
4. NVIDIA CUDA.
5. OpenCL – переносимость и ее цена.
9. CUDA
Основные идеи:
1. Функция которая распараллеливается называется «kernel-function».
2. Потоки исполняющие ядерные функции группируются в блоки.
3. Потоки и блоки нумеруются.
4. Только одна ядерная функция может исполняться на устройстве
в один момент времени.
5. Блоки потоков исполняются на мультипроцессорах,
потоки на потоковых процессорах.
6. Блоки состоят из WARP, которые исполняются в SIMD режиме
12. Доступные средства для быстрой разработки с GPU
Область параллельных вычислений развивается очень динамично, достаточно
большое количество библиотек для вычислений с GPU уже существует.
cuBLAS cuFFT cuSparse
Thrust cuRand HiPLAR
13. Набор примитивов для сетей Deep Learning
1. Сверточный слой
2. Слой фильтрации
3. Обобщающий слой
Интеграция с Caffe
24-core Intel E5-2679v2 CPU @ 2.4GHz vs K40, NVIDIA
14. Применяем cuDNN в своих проектах!
Требует:
cuDNN supports NVIDIA GPUs of compute
capability 3.0 and higher
NVIDIA Driver compatible with CUDA
Toolkit 6.5.
Предоставляет:
‣ Прямой и обратный слой конволюции,
включая кросс-корелляцию
‣ Слой обобщения прямое и обратное
‣ Слой Софтмакс прямой и обратный
Функции активации
‣ Rectified linear (ReLU)
‣ Sigmoid
‣ Hyperbolic tangent (TANH)
‣ Tensor transformation functions
15. Библиотека Thrust
Доступные параллельные алгоритмы:
Трансформация (12 операнда, +, -,abs, * …)
Редукция (sum, max, min, )
Префикс-сумма (inclusive scan, exclusive scan – для сортировки напр.)
Сортировка
Перестановка (copy_if, remove_if, unique …)
Основная идея – сделать параллельные вычисления доступными
для понимания, как и шаблоны С++
За счет абстракции может несколько теряться производительность,
но повышается скорость разработки
17. Библиотеки и ссылки
Python - Theano, Pylearn2, cudamat, mPoT
C++ - Cuda-Convnet, Eblearn, CXXNET
Matlab – DeepLearnToolbox, Deep Belief Networks, deepmat
http://deeplearning.net/software_links/
18. Выводы
1. Для редких, экспериментальных, не реализованных в библиотеках
Алгоритмов иногда достаточно оптимизировать код C для последовательной
версии.
2. Параллелизация для CPU, как правило диктуется сложностью в «широком»
распараллеливании алгоритма, либо аппаратными ограничениями
3. Использовать готовые оптимизированные пакеты функций BLAS, cuBlas,
Thrust
4. cuDNN + Caffe дает возможности быстрого прототипирования DNN
Спасибо за внимание !