Илья Щербак, Eltex
Upcoming SlideShare
Loading in...5
×
 

Илья Щербак, Eltex

on

  • 928 views

HighLoad++ 2013

HighLoad++ 2013

Statistics

Views

Total Views
928
Views on SlideShare
715
Embed Views
213

Actions

Likes
0
Downloads
10
Comments
0

4 Embeds 213

http://www.highload.ru 145
https://twitter.com 65
http://2012.highload.co 2
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Илья Щербак, Eltex Presentation Transcript

  • 1. Управление вычислительным кластером DSP процессоров на Erlang Илья Щербак Eltex ilya@shcherbak.ru
  • 2. I. Intro
  • 3. С чего все начиналось?
  • 4. Особенности специализированных вычислителей • • • • • Различные архитектуры (DSP, GPU, FPGA, ARM, etc) Сложность разработки Сложность отладки Низкий уровень Высокие требования к разработчику
  • 5. – Как этого избежать?
  • 6. – Как этого избежать? – Никак.
  • 7. – Зачем это нужно?
  • 8. – Зачем это нужно? – Решение специализированных задач более эффективно.
  • 9. Когда это нужно • • • Нужно повысить вычислительную плотность Нужно сэкономить на энергопотреблении GPP не справляется с этой задачей или решение на GPP слишком дорого
  • 10. Что хорошо делать на DSP • • • Цифровая обработка сигналов Анализ изображений Обработка видео
  • 11. Чего стоит избегать • • Бизнес логика на вычислителях Монолитность системы
  • 12. Модульная архитектура • • • DSP выполняет узкоспециализированную задачу DSP могут быть скоммутированы произвольным образом Бизнес-логика системы находится на уровне хоста
  • 13. DSP – специализированный вычислитель
  • 14. The UNIX K.I.S.S. Простые части через прозрачный интерфейс
  • 15. II. Actor model and Erlang
  • 16. Особенности модели акторов • • • Интефейс обмена сообщениями Динамическое порождение других акторов Изоляция данных внутри актора, отсутствие shared state
  • 17. Модель акторов хорошо подходит для concurency систем
  • 18. Erlang как реализация модели акторов
  • 19. Особенности Erlang VM • • • • Очень дешевые процессы Легкие байнари Развитые extentions механизмы Сборщик мусора на каждый Erlang процесс (никакого Stop-World)
  • 20. Erlang process как интерфейс к вычислителю
  • 21. III. Cluster structure
  • 22. Вычислительная часть TI TMS320C6678
  • 23. Core Pack • • • • 8 ядер 1025 MGz 8 функциональных модулей на ядро VLIW (Very long instruction world) архитектура L1/L2 configurable cache
  • 24. On-Chip Memory • • • • 256 KB L1 Program Memory/Cache 256 KB L1 Data Memory/Cache 4096 KB L2 Memory/Cache 4096 KB MSM
  • 25. Peripherals • • • • • • • • • • • EMIF EDMA3 SRIO PCIe Ethernet HyperLink TSIP SPI UART I2C GPIO
  • 26. Figure 1-1 Functional Block Diagram Memory Subsystem 4MB MSM SRAM 64-Bit DDR3 EMIF MSMC Debug & Trace Boot ROM Semaphore C66x CorePac Power Management PLL 32KB L1 P-Cache ´3 32KB L1 D-Cache 512KB L2 Cache EDMA 8 Cores @ up to 1.25 GHz ´3 TeraNet HyperLink Multicore Navigator Switch ´4 SRIO Ethernet Switch SGMII ´2 ´2 TSIP SPI UART ´2 PCIe I2C GPIO EMIF 16 Queue Manager Packet DMA Security Accelerator Packet Accelerator Network Coprocessor
  • 27. Peripherals use in cluster • • • EMIF EDMA3 PCIe
  • 28. DSP programm
  • 29. SYS/BIOS • • • • • Real-time OS Управление памятью Механизмы шедулинга Механизмы синхронизации Инструменты мониторинга и отладки
  • 30. Транспортная часть PCI-E/DMA/MSI
  • 31. PCIe Peripheral Component Interconnect • • Соединение точка-точка Транзакционный протокол
  • 32. DMA Direct Memory Access • Транспорт данных через EDMA для снижения нагрузки на хост/DSP
  • 33. MSI Message Signalled Interrupt • • Отсутствие гонок Расширенный набор векторов прерывания
  • 34. IV. Driver interface
  • 35. Функции драйвера • • Загрузка DSP Предоставление интерфейса к DSP
  • 36. Boot protocol
  • 37. Process protocol
  • 38. Implemented interfaces • • read/write – для синхронных операций mmap/ioctl/poll – для асинхронных запросов
  • 39. V. Erlang interface
  • 40. Взаимодействие с кодом vs взаимодействие с приложением Скорость vs Безопасность VM
  • 41. Erlang extentions • • • • Port extentions Port Driver Erlang DP NIF (Native Implemented Function)
  • 42. Почему NIF – самый быстрый extention механизм • • • • Прямой вызов функции, как BIF Исполнение в контексте Erlang process Использование внутренних структур данных VM Прямой доступ к Heap процесса
  • 43. NIF only Erlang VM driver_lib.so DSP Host DSP DSP DSP Cluster
  • 44. Гибридная схема • • NIF – как интерфейс доступа к Shared Memory Port extention – как интерфейс доступа к вычислителю
  • 45. Гибридная схема shm_lib.so shm_lib.so Erlang VM OS Process Host DSP DSP DSP DSP Cluster
  • 46. Zero-copy mode или Magic binary Erlang binary resource
  • 47. Кастомные аллокаторы в Erlang #define SIZE 100 ErlNifResourceType *resource; static ERL_NIF_TERM sample_nif_function(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]){ void *data = enif_alloc_resource(resource, SIZE); return enif_make_resource(env, data); } static void custom_destructor(ErlNifEnv *env, void *obj){} static int load(ErlNifEnv *env, void **priv, ERL_NIF_TERM load_info){ resource = enif_open_resource_type(env, NULL, "resource", custom_destructor, ERL_NIF_RT_CREATE, NULL); return 0; }
  • 48. Потоки данных в системе Erlang VM – реальный поток – логический поток Process Producer – Erlang Port Process Consumer
  • 49. Erlang VM как тонкий коммутатор App App App Erlang VM OS Peripherials Host DSP cluster
  • 50. VI. Shared memory framework
  • 51. Задачи SHM framework • • • Аллокация shared memory Серилизация/десерилизация Получение объекта по id
  • 52. Shared memory allocation Buddy memory allocation
  • 53. Lock free memory access CAS operators
  • 54. VII. Coda
  • 55. Основные идеи доклада • • Управляющая логика на Erlang • • Система на Erlang нужным образом коммутирует DSP Программа на DSP небольшая, хорошо выполняет определенную задачу При данной декомпозиции системы вычислитель легко заменяется, так как логика работает с ним как с черным ящиком
  • 56. Спасибо за внимание! Илья Щербак Eltex ilya@shcherbak.ru