Pull to refresh
30
0
Sergey Melnikov @RainM

Performance Architect

Send message

Профилирование со сверхсветовой скоростью: теория и практика. Часть 1

Reading time 13 min
Views 10K
Привет! Из заголовка вы уже поняли, о чём я собираюсь рассказать. Тут будет много хардкора:
мы обсудим Java, С, С++, ассемблер, немного Linux, немного ядра операционной системы. А ещё разберём практический кейс, поэтому статья будет в трёх больших частях (достаточно объёмных).



В первой мы попробуем выжать всё возможное из существующих профилировщиков.
Во второй части сделаем собственный маленький профилировщик, а в третьей посмотрим, как же профилировать то, что профилировать не принято, потому что существующие инструменты не очень для этого подходят. Если готовы пройти этот путь — жду вас под катом :)
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 3

Java это не только кровавый энтерпрайз, но и быстрые latency-sensitive приложения

Reading time 6 min
Views 11K
Я занимаюсь алгоритмической торговлей в Райффайзенбанке. Это довольно специфичная область банковской сферы. Мы делаем торговую платформу, работающую с низкими и предсказуемыми задержками. Успех приложения зависит, в том числе, и от скорости работы приложения, поэтому нам приходится заниматься всем стеком, задействованным в торговле: приватными сетевыми каналами, специальным аппаратным обеспечением, настройками ОС и специальной JVM, и, конечно же, самим приложением. Мы не можем остановиться на оптимизации исключительно самого приложения — настройки ОС или сети имеют не меньшее значение. Это требует технической экспертизы и эрудиции, чтобы понять, как через весь стек проходят данные, и где может быть задержка.

Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Comments 27

Место Java в мире HFT

Reading time 10 min
Views 20K

В статье автор пытается проанализировать почему существуют торговые системы написанные на Java. Как может Java соперничать в области высокой производительности с C и C++? Далее размещены небольшие размышления о достоинствах и недостатках использования Java в качестве языка программирования/платформы для разработки систем HFT.
Читать дальше →
Total votes 37: ↑31 and ↓6 +25
Comments 49

Разделяем интерфейс и реализацию в функциональном стиле на С++

Reading time 5 min
Views 19K
Разделяем интерфейс и реализацию в функциональном стиле на С++


В языке С++ для разделения объявлений структур данных (классов) используются заголовочные файлы. В них определяется полная структура класса, включая приватные поля.
Причины подобного поведения описаны в замечательной книге «Дизайн и эволюция C++» Б.Страуструпа.

Мы получаем внешне парадоксальную ситуацию: изменения в закрытых приватных полях класса требует перекомпиляции всех единиц трансляции (.cpp файлов), использующих лишь внешний интерфейс класса. Конечно, причина этого кроется в необходимости знать размер объекта при инстанцировании, но знание причины проблемы не решает саму проблему.

Попытаемся использовать мощь современного С++, чтобы побороть этот недостаток. Заинтереснванных прошу под кат.
Читать дальше →
Total votes 23: ↑15 and ↓8 +7
Comments 25

Нейронная сеть Хопфилда на пальцах

Reading time 7 min
Views 80K

Статья посвящена введению в нейронные сети и примеру их реализации. В первой части дано небольшое теоретическое введение в нейронные сети на примере нейронной сети Хопфилда. Показано, как осуществляется обучение сети и как описывается ее динамика. Во второй части показано, как можно реализовать алгоритмы, описанные в первой части при помощи языка С++. Разработанная программа наглядно показывает способность нейронной сети очищать от шума ключевой образ. В конце статьи есть ссылка на исходный код проекта.


Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 22

Лекции и тренинги Intel по Software Engineering. Август, Москва

Reading time 2 min
Views 6.8K

Если вы, студент или аспирант, до сих пор не придумали, как интересно и с пользой провести последние дни перед учебным годом в Москве – это пост для вас!
С 24 по 28 августа в московском офисе компании Intel состоится курс лекций и тренингов для студентов, магистрантов и аспирантов естественно-научных специальностей ВУЗов России. Лекторы – высококлассные профессионалы компании Intel, развивающие самые современные направления программной инженерии.
Лекции и тренинги позволят слушателям узнать о том, какие знания, умения и навыки будут полезны им для работы в крупной IT-компании и как эти знания применяются в реальном процессе производства и тестирования ПО. Кто знает, быть может, это тот шанс, который вы искали?
Подробности
Total votes 9: ↑7 and ↓2 +5
Comments 1

OpenMP теперь доступен в Clang!

Reading time 2 min
Views 6.8K
Скоро первое сентября. Кто-то собирается в школу, кто-то — в институт. А мы предлагаем начать новые проекты с компилятором clang, который теперь поддерживает OpenMP!

Проект доступен здесь. Сейчас в его основе лежит clang 3.3. Небыстрый процесс ревью уже идет, и скоро код будет залит в транк clang'а, а значит войдет в его новые релизы.

Реализована полная поддержка стандарта OpenMP версии 3.1. Успешно проходятся следующие тесты: набор для валидации OpenMP от OpenUH Research Compiler, SPEC OMP2012 и внутренние тесты Intel. Исполняемый код c OpenMP, собранный clang'ом, демонстрирует производительность, сравнимую с другими компиляторами, поддерживающими OpenMP.
В качестве библиотеки времени выполнения использована библиотека Intel OpenMP Runtime Library, также доступная под свободной лицензией.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 4

Ускорение криптоопераций или опыт портирования под Android

Reading time 9 min
Views 12K
В состав платформы Android входит фреймворк Bouncycastle, предназначенный для выполнения криптоопераций, например, шифрования или проверки цифровой подписи. Отличительной чертой данного фреймворка является то, что он целиком написан на Java, без применения нативного кода. Это увеличивает его переносимость, однако значительно уменьшает быстродействие. В первом приближении реализация криптофункций с помощью нативного кода может дать значительный прирост производительности. Это может существенно увеличить быстродействие приложения, использующего криптографию. Посмотрим, подтвердится ли это предположение.
Данным постом я хочу начать серию статей о создании модуля, выполняющего криптооперации на примере шифрования/расшифровки симметричным алгоритмом AES. Для начала необходимо понять, какой прирост производительности может дать применение нативного кода по сравнению со встроенной в ОС реализацией.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 13

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity