OpenTS. Состояние работ и перспективы Абрамов С. М., ИПС РАН, Доклад на PSTA2006 Переславль-Залесский, ИПС РАН,
Суперкомпьютерная программа «СКИФ» Союзного государства. Системное программное обеспечение для суперкомпьютеров семейства «СКИФ»
Click to edit Master title style Суперкомпьютерная программа «СКИФ» Союзного государства исполнителей $10M (на 5 лет на 20 предприятий) ИПС РАН головной по России ОИПИ НАН Беларуси – головной по Белоруссии Hardware, Software, Applications, Aux.
Click to edit Master title style Выпуск образцов (16)
Click to edit Master title style раз Linpack-производительность образцов
Click to edit Master title style Пиковая производи- тельность: Пиковая производи- тельность: 2,5 Tflops Linpack-производи- тельность: Linpack-производи- тельность: 2,0 Tflops КПД КПД=80.1 % Наиболее мощная машина на территории СССР Ноябрь 2004: Наиболее мощная машина на территории СССР 98 в Top500 Ноябрь 2004: 98 в Top500 Флагман: «СКИФ К-1000»
Click to edit Master title style Комплект ПО КУ, литера «О 1 » Linux-SKIF ядро ОС Linux-SKIF PVFS-SKIF PVFS-SKIF параллельная файловая система OpenPBS-SKIF OpenPBS-SKIF система очередей FLAME-SKIF FLAME-SKIF система мониторинга и управления (reset, power on/off) установками семейства «СКИФ»
Click to edit Master title style Комплект ПО КУ, литера «О 1 » OpenTS OpenTS Т-система с открытой архитектурой компилятор TG++ для языка T++ транслятор TF2TC (T-Fortran T++) TDB TDB распределенный интерактивный отладчик MPI- программ, с поддержкой отладки Т-программ (замена TotalView)
Click to edit Master title style Комплект ПО КУ, литера «О 1 » 6 6 прикладных программных систем в среде OpenTS адаптированных свободных пакетов, библиотек и приложений приложений собственной разработки (из них 3 в области ИИ) Совместимость 6 Совместимость платформы с коммерческими инженерными пакетами (более 6 отраслей реальных применений)
Основные идеи Т-Системы и обзор архитектуры OpenTS
Click to edit Master title style Т-Система. История Середина 80-ых Середина 80-ых Основные идеи Т-Системы 1990-ые 1990-ые Первая реализация Т-Системы , Программа «СКИФ» , Программа «СКИФ» GRACE Graph Reduction Applied to Cluster Environment 2003-сегодня, Программа «СКИФ» и далее 2003-сегодня, Программа «СКИФ» и далее Open TS Open T-system (открытая архитектура)
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style Т-Система: иллюстрация идеи
Click to edit Master title style C/Fortran T-System Assembler MPI High-level несколько ключевых слов (понятий) Low-level сотни примитивов SequentialParallel Сравнение: Т-Система и MPI
Click to edit Master title style Open TS: основные свойства Автоматическое динамическое распараллеливаниепрограмм Автоматическое динамическое распараллеливание программ Много платформ один инструмент Много платформ один инструмент разные ОС, multicore, SMP, кластеры, GRID Сочетание парадигм Сочетание парадигм: функциональной и императивной (ООП) Высокоуровневое программирова- ние Высокоуровневое программирова- ние: Т++ язык «диалект» C++ незабытое старое: популярно с 90-ых
Click to edit Master title style Т++: 7 новых ключевых слов tfun Т-функция tval Т-переменная (Т-значение) tptr Т-указатель tout Выходной параметр (аналог &) tdrop Разорвать связь поставщик- потребитель (сделать готовым) twait Редкое: ждать готовности tct Т-контекст
Click to edit Master title style «Чистые» функции «Чистые» функции (tfunc) их вызовы способны порождать гранулы параллелизма Т-Программы Т-Программы: Функциональны Функциональны – на верхнем уровне Императивны Императивны – на нижнем уровне (C/C++/ASM оптимизации) C-совместимая модель исполнения C-совместимая модель исполнения Неготовые значениямногократные присваивания Неготовые значения, многократные присваивания Гладкие расширения Гладкие расширения языков: C, Fortran, рефал Т-Подход
Click to edit Master title style Средства разработки Средства разработки Компилятор T++ Компилятор (входной модуль gcc) конвертор T++ C++ конвертор компиляторы для других языков Средства отладки и трассировки Средства отладки и трассировки (отладчик TDB / GTDB, трассировка ) Микроядробиблиотека поддержки времени исполнения Микроядро Т-системы и библиотека поддержки времени исполнения Open TS: полноценная система программирования
Click to edit Master title style Легковесные потоки Легковесные потоки (lightweight threads): раскрепощение программиста Пример программы: потоков на процессор Асинхронные взаимодействия Асинхронные взаимодействия Нити A требуется неготовое значение Передается асинхронный запрос (Active messages & Signals), чтобы стимулировать передачу данных к нити A Выделяется квант на коммуникации (нет ли чего в нашем процессоре?) и переход (context switch) на другую готовую нить Эффект сокрытия задержек Эффект сокрытия задержек (Latency Hiding) в коммуникациях Многопоточность и коммуникации
Click to edit Master title style DMPI Dynamic MPI Dynamic MPI автоматический подбор реализации MPI динамическая загрузка и связывание (dynamic loading and linking) Вос емь реализаций Вос емь реализаций MPI поддержаны: LAM Open MPI MPICH SCALI MPI MVAPICH IMPI IMPI MPICH-G2 MPICH-G2 PACX-MPI PACX-MPI Еще: PVM иTCP/IP Еще: PVM и TCP/IP могут быть использованы DMPI в качестве транспорта вместо MPI для территориально- распределенных установок (GRID)
контракт с Microsoft «Сравнение OpenTS с MPI»
Click to edit Master title style Заказчик: Microsoft 2004: 2004: Microsoft создал подразделение HPC 2005: 2005: демонстрация намерений Microsoft в области HPC Осень 2005: Осень 2005: бета-версии Microsoft MPI и Microsoft Windows Computing Cluster Server Осень 2004: Осень 2004: знакомство Microsoft с OpenTS 2005: 2005: контракт «Сравнение Open TS с MPI» 2006: 2006: контракт «Перенос Open TS на Microsoft Windows Compute Cluster Server»
Click to edit Master title style Приложения Популярные и широко используемые Разработаны независимыми MPI-эксперта-ми (без «связей» с Т-Системой) PovRay PovRay – Persistence of Vision Ray-tracer, С- пакет + C/MPI-patch ALCMD/MP_lite ALCMD/MP_lite – молекулярная динамика (Ames Lab) Фортран-программа + MP_Lite/MPI
Click to edit Master title style Ключевой вопрос: легко, удобно Позволяет ли Т-Система легко, удобно создавать прикладные системы? Экономится ли труд программиста? Действительно ли более читабельный и более компактный код? (less space for bugs) И при этом мы не сильно жертвуем производительностью (до 30% от MPI)?
Click to edit Master title style ПрограммаОбъем исходного кода MPI модуль для PovRay 3.10g 1,500 строк MPI «заплатка» для PovRay 3.50c 3,000 строк T++ модуль (для двух версий 3.10g и 3.50c) 200 строк T-PovRay vs MPI PovRay: сложность кода
Click to edit Master title style 16 dual Athlon 1800, AMD Athlon MP RAM 1GB, FastEthernet, LAM T-PovRay vs MPI PovRay: производительность
Click to edit Master title style 2CPUs AMD Opteron GHz RAM 4GB, GigE, LAM T-PovRay vs MPI PovRay: производительность
Click to edit Master title style ALCMD/MPI vs ALCMD/OpenTS Библиотека MP_Lite (кусочек) переписана на T++ остался нетронутым Fortran-код остался нетронутым
Click to edit Master title style Ключевой вопрос: библиотеки (подобные MP_Light) Позволяет ли Т-Система легко, удобно создавать библиотеки (подобные MP_Light) для дальнейшей разработки прикладных систем? Экономится ли труд программиста? Действительно ли более читабельный и более компактный код? (less space for bugs) И при этом мы не сильно жертвуем производительностью (до 30% от MPI)?
Click to edit Master title style ПрограммаОбъем исходного кода MP_Lite/MPI~3,500 строк MP_Lite/OpenTS 500 строк 500 строк ALCMD/MPI vs ALCMD/OpenTS : сложность кода
Click to edit Master title style ALCMD/MPI vs ALCMD/OpenTS: производительность 2CPUs AMD Opteron GHz RAM 4GB, GigE, LAM 7.1.1, Lennard-Jones MD, atoms
Click to edit Master title style 2CPUs AMD Opteron GHz RAM 4GB, InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD, atoms ALCMD/MPI vs ALCMD/OpenTS: performance
: контракт с Microsoft «Перенос Open TS на Microsoft Windows Compute Cluster Server»
Click to edit Master title style Перенос Open TS на Microsoft Windows Compute Cluster Server Цель FreeBSD лицензия Академическая версия OpenTS for Win CCS ( FreeBSD лицензия )Результаты OpenTS п еренесен а под Windows Обновлён для поддержки «MS-расширений» Visual C++ Platform Abstraction Layer и кросс- платформенный код микроядра OpenTS Инсталлятор OpenTS для AMD64 и x86 Правки и полировка кода ( доступ к полям tval- структур, реализация конструкции new и т.п.)
Click to edit Master title style Инсталлятор OpenTS Поддерживает AMD64 и x86 Устанавливает Compute Cluster Pack SDK Тестирует установленную OpenTS
Click to edit Master title style Сборка Т-приложений Из командной строки В среде разработки Visual Studio 2005
Click to edit Master title style Запуск Т-приложений Автономно на одном процессоре Автономно на нескольких процессорах SMP-машины через mpiexec На WinCCS-кластере через интерфейс командной строки (CLI) На WinCCS-кластере через графический интерфейс « Cluster Job Submission and Monitoring Console »
Click to edit Master title style Тестирование академической версии OpenTS for MS WinCCS Перенесено три десятка тестов на Т++ Перенесены два приложения из контракта-2005 : PovRay и ALCMD переданной Microsoft Проведено всестороннее сравнение для PovRay и ALCMD на одной и той же аппаратной платформе ( переданной Microsoft в ИПС РАН ): однопроцессорной версии (MS WinCCS и Linux) MPI-версии (MS WinCCS и Linux) академическая версия OpenTS (MS WinCCS и Linux) Linux-версия OpenTS + асинхронные обмены (только Linux)
Click to edit Master title style
Приложения, написанные на Open TS
Click to edit Master title style Т-Приложения (по областям) MultiGen MultiGen – оценка биологической активности веществ Дистанционное зондирование Земли Дистанционное зондирование Земли (ДЗЗ) Моделирование плазмы Моделирование плазмы Моделирование белков Моделирование белков Аэромеханика Аэромеханика Query engine Query engine for XML ИИ-приложени ИИ-приложения (3 штуки) и др.
Click to edit Master title style MultiGen Челябинский Государственный Университет Level 0 Level 1 Level 2 Multi-conformation model К0 К11К12 К21 К22
Click to edit Master title style SubstanceAtom number Rotations number ConformersExecution time (min.:с) 1 node4 nodes16 nodes NCI :333:211:22 TOSLAB A :2739:2316:09 NCI :1995:5734:48 National Cancer Institute USA Reg.No. NCI (AIDS drug lead) TOSLAB company (Russia-Belgium) Reg.No. TOSLAB A (antiphlogistic drug lead) National Cancer Institute USA Reg.No. NCI (AIDS drug lead) MultiGen: Speedup
Click to edit Master title style Аэромеханика НИИ механики МГУ им. М.В.Ломоносова
Click to edit Master title style Аэромеханика НИИ механики МГУ им. М.В.Ломоносова
Click to edit Master title style Восстановление изображения по данным бортовой РЛС («Алмаз»)
Click to edit Master title style Моделирование перспективной широкополосной РЛС
Click to edit Master title style Вычислительный Web-сервис Классификация изображений (Landsat)
Дальнейшие планы и что за рамками доклада
Click to edit Master title style Более глубокая поддержка многоядерных CPU (Территориально-) Распределенные системы Планировщик Другие коммуникационные реализации DMPI Интерфейсы к Web-сервисам Счет, устойчивый к отказам (fault-tolerance) Перенос на другие архитектуры (IBM Blue Gene), оптимизация под различные современные CPU Скелеты алгоритмов, шаблоны и параллельные библиотеки высокого уровня: sum = fold + minimum = fold min prod = fold * Дальнейшие планы
Click to edit Master title style За рамками доклада Другие Т-диалекты: T-Refal, T-Fortan Мемоизация (табулирование) функций Автоматическое переключение между call-стилем и fork-стилем при вызове Т-функций Контрольные точки (Checkpointing) Heartbeat-механизм Ароматы (Flavours) tptr-указателей: normal, glue and magnetic ленивые, жадные и супержадные передачи данных
Click to edit Master title style Благодарности Суперкомпьютерная программа «СКИФ» Союзного государства Программы РАН ОИВТС: «Высокопроизводительные вычислительные системы с новыми принципами организации вычислительных процессов» Президиум: «Создание основы для внедрения распределенных научных информационно- вычислительных сред на GRID технологиях» РФФИ: грант офи_а Microsoft – контракты «Open TS vs MPI case study» и «Porting Open Microsoft Windows Computing Cluster Server»
Спасибо за внимание... … … Готов ответить на вопросы … …