В прошлой статье мы рассмотрели, как работает аппаратное ускорение кодирования и декодирования видео Quick Sync Video (QSV) в процессорах 6-го поколения Skylake. Маленький участок SoC специально выделили для размещения специализированных интегральных схем, которые занимаются только обработкой видео. Воспроизведение видео с аппаратной поддержкой стало гораздо меньше отнимать ресурсов у других задач в ОС, меньше нагревать CPU и потреблять меньше электроэнергии. Благодаря QSV, например, ноутбук MacBook Air воспроизводит более 10 часов видео на одном заряде аккумулятора.
Читать полностью »
Рубрика «высокая производительность» - 110
Просто, мощно, навсегда. Элекард CodecWorks 990 — программный лайв транскодер для AVC и HEVC
2016-10-25 в 11:28, admin, рубрики: avc, CodecWorks 990, ffmpeg, h264, H265, HEVC, Intel Media SDK 2.0, Intel Media Server Studio, libavcodec, QSV, Quick Sync Video, Skylake, Алгоритмы, Блог компании Intel, высокая производительность, кодеки, обработка изображений, транскодер, цифровое ТВ, ЭлекардЖивая миграция контейнеров: взгляд изнутри
2016-10-25 в 9:30, admin, рубрики: jelastic, автоматизация, Блог компании Jelastic, высокая производительность, живая миграция, контейнеры, метки: Живая МиграцияСегодня мы рассмотрим тему, которая не в полной мере раскрыта в современном мире ИТ: живая миграция контейнеров, как она работает за кулисами и какие проблемы решает. Спрос на данную технологию продолжает стремительно расти, поскольку она открывает новые возможности, предоставляя больше свободы в управлении жизненным циклом приложений.
Живая миграция – что это?
Живая миграция контейнеров подразумевает собой процесс перемещения приложения между разными физическими машинами или облаками без прерывания работы приложения и разрыва связи с пользователем. Память, файловая система и сетевое соединение контейнеров, запущенные поверх «голой» аппаратуры, передаются от исходного хост-компьютера к месту назначения, поддерживая рабочее состояние без прерывания работы.
Читать полностью »
GPU в облаках
2016-10-25 в 1:02, admin, рубрики: Amazon Web Services, AWS GPU Instances, Azure GPU Instances, GPU в облаках, Microsoft Azure, высокая производительность, машинное обучение, опасное сравнение, метки: AWS GPU Instances, Azure GPU Instances, GPU в облаках, опасное сравнениеНужно построить больше GPU ↓
Deep Learning – одно из наиболее интенсивно развивающихся направлений в области машинного обучения.
Успехи исследований в области глубокого (глубинного) обучения вызывают за собой рост количества ML/DL-фреймворков (в т.ч. и от Google, Microsoft, Facebook), имплементирующих данные алгоритмы. За все возрастающей вычислительной сложностью DL-алгоритмов, и, как следствие, за увеличивающейся сложностью DL-фреймворков уже давно не угоняются аппаратные мощности ни настольных, ни даже серверных CPUs.
Выход нашли, и он простой (кажется таким) – использовать для такого типа compute-intensive-задач расчеты на GPU/FPGA. Но и тут проблема: можно, конечно, для этих целей использовать видеокарту любимого ноутбука, но какой русский data scientist не любит быстрой езды NVidia Tesla?
Подходов к владению высокопроизводительными GPU минимум два: купить (on-premises) и арендовать (on-demand). Как накопить и купить – тема не этой статьи. В этой — мы рассмотрим, какие предложения есть по аренде инстансов VM c высокопроизводительными GPU у облачных провайдеров Amazon Web Service и Windows Azure.
Упрощаем бинарный поиск в Excel — реализация Double VLOOKUP Trick с помощью UDF
2016-10-24 в 18:04, admin, рубрики: excel формула, UDF, Алгоритмы, бинарный поиск, ВПР, высокая производительность, макросы, оптимизация программ, Разработка под e-commerce, Семантика, метки: excel формула, UDFДобавлю в копилку статей Хабра о Бинарном поиске еще одну.
Речь пойдет о кастомной реализации, может быть полезно всем, кто часто использует в работе ВПР для сравнения больших списков или для поиска данных в больших массивах.
Предыстория
Все началось с того, что я открыл для себя т.н. Double-TRUE VLOOKUP trick (трюк с двойным использованием ВПР и ИСТИНА в 4-м параметре). Развернутое описание алгоритма можно найти в статье Charles Williams «Why 2 VLOOKUPS are better than 1 VLOOKUP» (в конце статьи).
Поняв принцип работы и открыв для себя, что этот подход может быть в тысячи раз быстрее обычного линейного поиска (ВПР с 4-м параметром ЛОЖЬ), я начал продумывать варианты раскрыть его возможности. В ходе реализации получилось несколько годных инструментов для контекстной рекламы, один из которых я еще продолжаю улучшать, и уже посвятил проекту пару статей на Хабре. Чтиво рекомендуется SEO-специалистам и специалистам по контекстной рекламе (сразу оговорюсь, по ссылкам в статьях уже устаревшие версии, последняя версия условно 6.0, ссылки на скачивание всех версий, включая самую свежую, будут в конце этой статьи):
Анализ больших семантических ядер, или «Робот-распознаватель»
Лемматизация в Excel, или «Робот-распознаватель 3.0
Так вот, несмотря на невероятную скорость работы этих файлов (невероятную для Excel), их создание потребовало использования таких же невероятно длинных мегаформул как одной из составляющих работы макросов (в последней из вышеуказанных статей приведен пример — формула на 3215 символов). И всему виной сложный синтаксис функции.
Если набить руку с его использованием, он перестает казаться сложным, но неискушенным пользователям, для которых предназначен такой подход, вряд ли захочется разбираться в нем.
Синтаксис выглядит так: Если(ВПР(искомое; массив;1; ИСТИНА)<искомое;""; ВПР(искомое; массив;n; ИСТИНА))
где n — порядковый номер столбца, из которого мы хотим вернуть значение напротив искомого ключа.
Вместо «ИСТИНА» в 4-м параметре можно использовать «1» для номинального сокращения длины формул, это не меняет их сути.
Если озвучить ход работы формулы, будет нижеследующее:
«Если бинарный поиск ключа по первому столбцу массива возвращает значение, меньшее, чем сам ключ, возвращаем пустую строку. Иначе — возвращаем результат бинарного поиска ключа со смещением n»
Подход используется для того, чтобы не возвращать никаких значений, если искомый ключ в массиве отсутствует, т.к. зачастую, если искомое не найдено — нам не нужно меньшее значение. Так сказать, все или ничего. Вкратце, в этом и есть суть «трюка».
Напомню, на карту поставлен прирост скорости, исчисляющийся трех-четырехзначными числами. Если подходить чисто математически — на массиве в 2^20 строк обычный бинарный поиск будет делать ~10 вычислений, формула выше — около 20, в то время, как линейный поиск — ~500.000, т.е. прирост формулы выше — в 25.000 раз. Если голые цифры не впечатляют, более красноречивое эквивалентное сравнение — 1 секунда против ~7 часов.
На практике прирост не столь существенный (в конце статьи ссылка на статью, где сравнивались разные способы). Это во многом связано с затратами процессорного времени на дополнительные процедуры, которые выполняет программа (например, запись значений в ячейки). НО прирост по-прежнему критически значимый (~4000 раз).
Но одновременно с этим мы имеем сложный, совершенно неюзабельный синтаксис. Не всем смертным дался ВПР, что говорить о комбинациях 2х ВПР с ЕСЛИ.
Вопрос со сложным синтаксисом я решил с помощью VBA — написал UDF (user-defined function, пользовательская функция), которая прячет под капот наши условные конструкции, оставляя нам привычный синтаксис всем известного ВПР.
Код UDF:
Читать полностью »
Sharding – patterns and antipatterns
2016-10-22 в 20:16, admin, рубрики: mysql, postgresql, алексей рыбак, Блог компании Конференции Олега Бунина (Онтико), высокая производительность, константин осипов, Программирование, шардирование, метки: алексей рыбак, константин осипов, шардирование
Константин Осипов (
kostja ), Алексей Рыбак (
fisher )
Константин Осипов: Доклад родился из следующего разговора. Я, как всегда, пытался убедить Алексея больше использовать Tarantool, а он сказал, что там до сих пор нет шардинга и, вообще, неинтересно. Тогда мы стали рассуждать о том, почему нет. Я стал рассказывать, что тут нет одного универсального решения, автоматика полная за вас работает, а вы только кофе на работе пьете и все…
Поэтому родился этот доклад — чтобы посмотреть на то, какой бывает шардинг, какие методы в каких системах используются, какие преимущества и недостатки, почему нельзя одной «серебряной пулей» все решить?
Контроль качества кода в перспективе развития проекта
2016-10-19 в 10:41, admin, рубрики: Building Maintainable Software, C#, java, php, Software Improvement Group, Блог компании SECL GROUP, высокая производительность, качество кода, поддержка проекта, Программирование, Разработка веб-сайтов, стандарты кодирования, стоимость поддержки, чистый код, метки: стандарты кодированияНаверняка всем знакома ситуация, когда развитием проекта упирается в какую-то стену, внедрение новых функций становится все более затратным по времени и финансам. И, к сожалению, нередки такие моменты, когда чаша весов с ценой, начинает значительно перевешивать возможную выгоду от реализации той, или иной функции.
Это достаточно стандартный и, во многом, привычный ход событий. С опытом, мы пытаемся делать разрозненные попытки улучшать ситуацию, и не допускать ошибок прошлого. Но часто, собрать все в кучу для организации какой-то вменяемой системы времени не хватает. И, какое-либо универсальное решение, до настоящего времени, найти было достаточно непросто.
Мы разработали автоматизацию по контролю качества кода, которая уже работает в нашей компании и в некоторых других. Данная реализация создана для языка PHP. Ранее она была только для Java и C#. Однако принципы и подходы применимы ко всем современным языкам, поэтому приглашаем к обсуждению этой важной темы.
Читать полностью »
Создание разделяемого хранилища на базе CEPH RBD и GFS2
2016-10-14 в 9:33, admin, рубрики: big data, ceph, gfs2, HPC, lustrefs, nfs, open source, openstack, storage, Блог компании HPC HUB, высокая производительность, параллельное программированиеБольшинство ПО кластерных систем предполагает наличие файловой системы доступной со всех узлов кластера. Эта файловая система используется для хранения ПО, данных, для организации работы некоторых кластерных подсистем и т.д. Требования на производительность такой FS могут сильно отличаться для разных задач, однако, чем она выше, тем считается, что кластер более устойчив и универсален. NFS сервер на мастер-узле является минимальным вариантом такой FS. Для больших кластеров NFS дополняется развертыванием LustreFS — высокопроизводительной специализированной распределенной файловой системы, использующей несколько серверов в качестве хранилища файлов и несколько метаинформационных серверов. Однако такая конфигурация обладает рядом свойств, которые сильно затрудняют работу с ней в случае, когда клиенты используют независимые виртуализированные кластера. В системе HPC HUB vSC для создания разделяемой FS используется широко известное решение CEPH и файловая система GFS2.
Читать полностью »
«Любое техническое изменение должно отвечать на вопрос «зачем?» — Одноклассники о Java и не только
2016-10-13 в 12:04, admin, рубрики: data mining, data science, highload, java, smart data, unsafe, Блог компании JUG.ru Group, Блог компании Одноклассники, высокая производительность, одноклассники
Как в Одноклассниках использование sun.misc.Unsafe сочетается с повышенными требованиями к надёжности? Почему там дорабатывали систему мониторинга Cacti? Как работа в ОК пересекается с научной деятельностью? Если соцсеть называется «Одноклассники», то состоит ли весь её Java-код из одного класса?
Ответы на эти и другие вопросы — в нашем посте. В преддверии Joker, где сразу трое сотрудников ОК будут спикерами, а ещё один участвует в программном комитете, мы расспросили всех четверых — и не только их. На наши вопросы ответили:
- Олег Анастасьев, ведущий разработчик (участник программного комитета Joker 2016)
- Андрей Паньгин, ведущий разработчик (спикер Joker 2016)
- Виталий Худобахшов, ведущий аналитик (спикер Joker 2016)
- Дмитрий Бугайченко, инженер-аналитик (спикер Joker 2016)
- Андрей Губа, заместитель технического директора
- Кристина Штейнберга, руководитель отдела персонала
Подсаживаем на Java-хардкор: Бесплатная трансляция трека Joker 2016 без купюр
2016-10-13 в 7:03, admin, рубрики: java, joker, jokerconf, JUG.RU молодцы, бесплатно, Блог компании JUG.ru Group, высокая производительность, конференцияJoker 2016 начнётся уже завтра, и мы с нетерпением ждём момента, когда почти тысяча Java-разработчиков соберётся под одной крышей. Хотя в этот раз прикоснуться к прекрасному можно будет из-под тысяч крыш: впервые в истории JUG.ru Group мы делаем открытую live-трансляцию одного из треков конференции! Без купюр и СМС.
Сразу предупреждаем: записи видео, как и раньше, мы выложим где-то через полгодика после конференции, так что если вам интересно — смотреть надо завтра-послезавтра в online! Как это сделать, какие доклады будут транслироваться открыто, что делать, если захочется посмотреть все доклады, и зачем мы вообще всё это делаем — читайте под катом.
Читать полностью »
Web-Оповещения в нагруженных проектах
2016-10-12 в 21:38, admin, рубрики: highload, Lua, lua-nginx-module, nginx, Анализ и проектирование систем, архитектура, высокая производительность, высоконагруженные приложенияВ современном WEB Конструировании очень часто возникают задачи, когда необходимо оповестить пользователя о каком-нибудь событии: пришло новое сообщение, изменился курс на бирже или статус заказа, с конвертировался видео-контент или подскочила температура больной бабушки.
Есть несколько вариантов решения такого класса задач. Наиболее оптимальное и распространенное решение – это подписка на события. Как это реализуется в нагруженных проектах?
Читать полностью »