Небольшая сенсация на конференции разработчиков высоконагруженных систем HighLoad++ (http://www.highload.ru/) – удалось уговорить Алексея Тутубалина (да, да, того самого – http://www.lexa.ru/) сделать доклад о материалах собственных исследований последних лет.
Алексей – один из лучших в России специалистов по интернет-технологиям, разработке сложных сайтов и интернет-сервисов, высоким нагрузкам, большим объемам данных. Фактически легенда Рунета. Наибольшую известность Алексею принесли собственные проекты Russian Internet Survey (http://www.lexa.ru/ru-survey/
Алексей сделает доклад на HighLoad++ под кодовым названием “Используем современный процессор на 146%” про современное состояние параллельных вычислений. Приведем краткий конспект выступления:
+ Векторные операции (SIMD: MMX, SSE, AVX). SIMD расшифровывается как single instruction, multiple data – одиночный поток команд, множественный поток данных. Что умеет, типы данных, виды операций. Требования к программам и алгоритмам, выравнивание данных. Быстродействие формальное и реальное. Кто сделает SIMD-код?
+ Многоядерные процессоры, многопроцессорные конфигурации. Сложно думать параллельно, сложно отлаживать (невоспроизводимые ситуации), data races, расход ресурсов на синхронизацию, проблемы с процессорными кэшами если потоки работают с одними/близкими адресами в памяти. Типичное современное использование:
++ Несколько/много изолированных процессов
++ Несколько/много потоков (threads), обрабатывающих независимые запросы
++ Сложные многопоточные программы, сильно связанные внутри себя
++ Data-parallel программы: пилим (большие) данные на (независимые) куски и обрабатываем: map-Reduce (всех видов), сортировка, точки синхронизации/reduce понятны, не требуется синхронизация в случайный момент, да еще и по внешнему событию. Data races маловероятны. Программа выглядит последовательной, а вычислительно-интенсивные места используют все ядра/CPU.
+ Параллельные языки программирования:
++ ISPC: интересует CPU-only, двойная буферизация болезненна, нет желания таскать большой рантайм вне программы.
++ OpenCL: планируется/возможен перенос на GPU, рантайм не пугает, двойная буферизация не пугает.
Удачи и до встречи на конференции!
http://www.highload.ru/