520 likes | 749 Views
Системное программное обеспечение суперкомпьютеров «СКИФ» и система программирования OpenTS. Абрамов С. М. Научная сессия ОИТВС Москва, ИПУ РАН, 2006-04-20. Научные интересы — в области системного программирования:. Что войдет в доклад.
E N D
Системное программное обеспечение суперкомпьютеров «СКИФ» и система программирования OpenTS Абрамов С. М.Научная сессия ОИТВСМосква, ИПУ РАН, 2006-04-20
Научные интересы — в области системного программирования: Что войдет в доклад • Программное обеспечение для региональных компьютерных сетей • Nadmin: система администрирования • Botik Tools: пакет программ для абонентов (Botik Tester, Botik Key, Botik Look) • BotikMon и BotikMap — мониторинг и спец. ГИС • Метавычисления и их приложения • функциональное программирование и реализация языка рефал (различных диалектов и на различных платформах) • теоретические основы информатики • Системное программное обеспечение для параллельных архитектур (для суперкомпьютеров семейства «СКИФ») • Т-Система — система программирования параллельных приложений • OpenTS — Т-система с открытой архитектурой
Суперкомпьютерная программа «СКИФ» Союзного государства.Системное программное обеспечение для суперкомпьютеров «СКИФ»
Суперкомпьютерный проект СКИФ Союзного государства • 2000-2004 • 10 + 10 исполнителей • $10M (на 5 лет на 20 предприятий) • ИПС РАН — головной по России • ОИПИ НАН Беларуси – головной по Белоруссии • Hardware, Software, Applications, Aux.
Linpack-производительность образцов 2032 472 185 раз 57 26 11
Флагман:«СКИФ К-1000» • Пиковая производи-тельность: 2,5 Tflops • Linpack-производи-тельность: 2,0Tflops • КПД=80.1 % • Ноябрь 2004: Наиболее мощная машина на территории СССР (сегодня: второе место 2) • Ноябрь 2004: № 98 в Top500
Комплект ПО КУ, литера «О1» • ядро ОС Linux-SKIF • PVFS-SKIF — параллельная файловая система • OpenPBS-SKIF — система очередей • FLAME-SKIF — система мониторинга и управления (reset, power on/off) установками семейства «СКИФ»
Комплект ПО КУ, литера «О1» • OpenTS — Т-система с открытой архитектурой • компилятор TG++ для языка T++ • транслятор TF2TC(T-Fortran T++) • TDB — распределенный интерактивный отладчик MPI-программ, с поддержкой отладки Т-программ (замена TotalView)
Комплект ПО КУ, литера «О1» • 6 прикладных программных систем в среде OpenTS • 12адаптированных свободных пакетов, библиотек и приложений • 14 приложений собственной разработки (из них 3 в области ИИ) • Совместимость платформы с коммерческими инженерными пакетами (более 6 отраслей реальных применений)
Основные идеи Т-Системы и обзор архитектуры Open TS
Т-Система. История • Середина 80-ыхОсновные идеи Т-Системы • 1990-ыеПервая реализация Т-Системы • 2000-2002, Программа «СКИФ»GRACE — Graph Reduction Applied to Cluster Environment • 2003-сегодня, Программа «СКИФ»Open TS — Open T-system (открытая архитектура)
High-levelнесколькоключевых слов(понятий) Assembler C/Fortran T-System MPI Low-levelсотнипримитивов Сравнение:Т-Система и MPI Sequential Parallel
Open TS: основные свойства • Автоматическое динамическое распараллеливание программ • Много платформ — один инструмент • разные ОС, multicore, SMP, кластеры, GRID • Сочетание парадигм: функциональной и императивной (ООП) • Высокоуровневое программирование: Т++ язык — «диалект» C++ • незабытое старое: популярно с 90-ых
Т++новые ключевые слова • tfun—Т-функция • tval—Т-переменная (Т-значение) • tptr—Т-указатель • tout—Выходной параметр (аналог &) • tdrop—Разорвать связь поставщик- потребитель (сделать готовым) • twait—Редкое: ждать готовности • tct—Т-контекст
Т-Подход • «Чистые» функции (tfunc) — их вызовы способны порождать гранулы параллелизма • Т-Программы: • Функциональны – на верхнем уровне • Императивны – на нижнем уровне (C/C++/ASM оптимизации) • C-совместимая модель исполнения • Неготовые значения, многократные присваивания • Гладкие расширения языков: C, Fortran, рефал
Open TS: полноценная система программирования • Средства разработки • T++ Компилятор (входной модуль gcc) • T++ C++ конвертор • компиляторы для других языков • Средства отладки и трассировки (TGDB, tracing) • Микроядро Т-системы и библиотека поддержки времени исполнения
Многопоточность и коммуникации • Легковесные потоки (lightweight threads): раскрепощение программиста • Пример программы: +1 000 000 потоков на процессор • Асинхронные взаимодействия • Нити Aтребуется неготовое значение • Передается асинхронный запрос (Active messages & Signals), чтобы стимулировать передачу данных к нити A • Выделяется квант на коммуникации (нет ли чего в нашем процессоре?) и переход (context switch)на другую готовую нить • Эффект сокрытия задержек (Latency Hiding)в коммуникациях
DMPI • Dynamic MPI • автоматический подбор реализации MPI • динамическая загрузка и связывание(dynamic loading and linking) • Семь реализаций MPI поддержаны: • LAM • MPICH • SCALI MPI • MVAPICH • IMPI • MPICH-G2 • PACX-MPI • Еще: PVM и TCP/IPмогут быть использованы DMPI в качестве транспорта вместо MPI для территориально-распределенных установок (GRID)
Заказчик: Microsoft • 2004: Microsoft создал подразделение HPC • 2005: демонстрация намерений Microsoft в области HPC • Осень 2005: бета-версии Microsoft MPI и Microsoft Windows Computing Cluster Server • Осень 2004: знакомство Microsoft с OpenTS • 2005: контракт«Сравнение Open TS с MPI» • 2006:контракт«Перенос Open TS на Microsoft Windows Computing Cluster Server»
Приложения • Популярные и широкоиспользуемые • Разработаны независимыми MPI-эксперта-ми (без «связей» с Т-Системой) • PovRay – Persistence of Vision Ray-tracer, С-пакет +C/MPI-patch • ALCMD/MP_lite – молекулярная динамика (Ames Lab)Фортран-программа + MP_Lite/MPI
Ключевой вопрос: • Позволяет ли Т-Система легко, удобно создавать прикладные системы? • Экономится ли труд программиста? • Действительно ли более читабельный и более компактный код? (less space for bugs) • И при этом мы не сильно жертвуем производительностью (до 30% от MPI)?
T-PovRay vs MPI PovRay: производительность 16 dual Athlon 1800, AMD Athlon MP 1800+ RAM 1GB, FastEthernet, LAM 7.0.6
T-PovRay vs MPI PovRay: производительность 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB, GigE, LAM 7.1.1
ALCMD/MPI vs ALCMD/OpenTS • Библиотека MP_Lite (кусочек) переписана на T++ • Fortran-код остался нетронутым
Ключевой вопрос: • Позволяет ли Т-Система легко, удобно создаватьбиблиотеки (подобные MP_Light)для дальнейшей разработки прикладных систем? • Экономится ли труд программиста? • Действительно ли более читабельный и более компактный код? (less space for bugs) • И при этом мы не сильно жертвуем производительностью (до 30% от MPI)?
ALCMD/MPI vs ALCMD/OpenTS: производительность 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB, GigE, LAM 7.1.1, Lennard-Jones MD, 512000 atoms
ALCMD/MPI vs ALCMD/OpenTS: performance 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB,InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD,512000 atoms
Т-Приложения • MultiGen – оценка биологической активности веществ • Дистанционное зондирование Земли (ДЗЗ) • Моделирование плазмы • Моделирование белков • Аэромеханика • Query engine for XML • ИИ-приложения (3 штуки) • и др.
MultiGenЧелябинский Государственный Университет К0 Level 0 Level 1 К11 К12 Level 2 К22 К21 Multi-conformation model
MultiGen: Speedup National Cancer Institute USA Reg.No. NCI-609067 (AIDS drug lead) National Cancer Institute USA Reg.No. NCI-641295 (AIDS drug lead) TOSLAB company (Russia-Belgium) Reg.No. TOSLAB A2-0261 (antiphlogistic drug lead)
АэромеханикаНИИ механики МГУ им. М.В.Ломоносова
АэромеханикаНИИ механики МГУ им. М.В.Ломоносова
Восстановление изображения по данным бортовой РЛС («Алмаз»)
Моделирование перспективной широкополосной РЛС
Классификация изображений (Landsat) • Вычислительный Web-сервис
Дальнейшие планы • Более глубокая поддержка многоядерных CPU • (Территориально-) Распределенные системы • Планировщик • Другие коммуникационные реализации DMPI • Интерфейсы к Web-сервисам • Счет, устойчивый к отказам (fault-tolerance) • Перенос на другие архитектуры (IBM Blue Gene), оптимизация под различные современные CPU • Скелеты алгоритмов, шаблоны и параллельные библиотеки высокого уровня: • sum = fold + • minimum = fold min • prod = fold *
За рамками доклада • Другие Т-диалекты: T-Refal, T-Fortan • Мемоизация (табулирование) функций • Автоматическое переключение между call-стилем и fork-стилем при вызове Т-функций • Контрольные точки (Checkpointing) • Heartbeat-механизм • Ароматы (Flavours) tptr-указателей: “normal”, “glue” and “magnetic” — ленивые, жадные и супержадные передачи данных
Благодарности • Суперкомпьютерная программа «СКИФ» Союзного государства • Программы РАН • ОИВТС: «Высокопроизводительные вычислительные системы с новыми принципами организации вычислительных процессов» • Президиум: «Создание основы для внедрения распределенных научных информационно-вычислительных сред на GRID технологиях» • РФФИ: грант 05-07-08005-офи_а • Microsoft – контракты «Open TS vs MPI case study» и «Porting Open TS@ Microsoft Windows Computing Cluster Server»
Спасибо за внимание... … … Готов ответить на вопросы … …