Институт программных систем Российской академии наук и К о1 Open TS: архитектура и реализация среды для динамического распараллеливания вычислений Абрамов.

Презентация:



Advertisements
Похожие презентации
Российская академия наук Институт программных систем Исследовательский центр мультипроцессорных систем - (ИЦМС ИПС РАН) Возможные бизнес-модели - различные:
Advertisements

OpenTS. Состояние работ и перспективы Абрамов С. М., ИПС РАН, Доклад на PSTA2006 Переславль-Залесский, ИПС РАН,
Институт программных систем Российской академии наук , Программы Союзного государства «СКИФ» и «СКИФ-ГРИД» Установлено более 60 суперкомпьютеров.
1. Определить последовательность проезда перекрестка
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Школьная форма Презентация для родительского собрания.
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Разработал: Учитель химии, биологии высшей квалификационной категории Баженов Алексей Анатольевич.

Ф. Т. Алескеров, Л. Г. Егорова НИУ ВШЭ VI Московская международная конференция по исследованию операций (ORM2010) Москва, октября 2010 Так ли уж.
Типовые расчёты Растворы
Флористические оформления. Композиции до 6000 руб
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Таблица умножения на 8. Разработан: Бычкуновой О.В. г.Красноярск год.
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от
КОНЦЕПЦИЯ РАЗВИТИЯ ЗДРАВООХРАНЕНИЯ РФ ДО 2020 ГОДА РОССИЯ 2009.
Фрагмент карты градостроительного зонирования территории города Новосибирска Масштаб 1 : 6000 Приложение 7 к решению Совета депутатов города Новосибирска.
Рисуем параллелепипед Известно, что параллельная проекция тетраэдра, без учета пунктирных линий, однозначно определяется заданием проекций его вершин (рис.
Транксрипт:

Институт программных систем Российской академии наук и К о1 Open TS: архитектура и реализация среды для динамического распараллеливания вычислений Абрамов С. М., Московский А. А., Роганов В. А., Парамонов Н. Н., Шевчук Е. В., Шевчук Ю. В., Чиж О. П. Новороссийск, Абрау-Дюрсо,

Open TS: архитектура и реализация Open TS: архитектура и реализация 2 План доклада Короткое само-представление Короткое само-представление Open TS: обзор архитектуры Open TS: обзор архитектуры Сравнение подходов: MPI vs Open TS Сравнение подходов: MPI vs Open TS Приложения, написанные на OpenTS Приложения, написанные на OpenTS Закругляясь: Закругляясь: Что осталось за рамками доклада? Что осталось за рамками доклада? Планов наших громадье... Планов наших громадье... Благодарности Благодарности

Институт программных систем Российской академии наук и К о3 1. Short Self-Introduction

Open TS: архитектура и реализация Open TS: архитектура и реализация 4 ИПС РАН, Переславль-Залесский

Open TS: архитектура и реализация Open TS: архитектура и реализация 5 МГУ им. М.В.Ломоносова MSU 250

Open TS: архитектура и реализация Open TS: архитектура и реализация 6 ПартнерыПартнеры ИПС РАН ИПС РАН МГУ им. М. В. Ломоносова МГУ им. М. В. Ломоносова ОИПИ НАН Беларуси ОИПИ НАН Беларуси наши пользователи: наши пользователи: ЧелГУ ЧелГУ НИИ мех. МГУ им. М. В. Ломоносова НИИ мех. МГУ им. М. В. Ломоносова НИИ КС (Хруничев) НИИ КС (Хруничев) и др. и др.

Институт программных систем Российской академии наук и К о7 Open TS: Обзор архитектуры

Open TS: архитектура и реализация Open TS: архитектура и реализация 8 Т-Система. История Середина 80-ых Основные идеи Т-Системы Середина 80-ых Основные идеи Т-Системы 1990-ые Первая реализация Т-Системы 1990-ые Первая реализация Т-Системы , Программа «СКИФ» GRACE Graph Reduction Applied to Cluster Environment , Программа «СКИФ» GRACE Graph Reduction Applied to Cluster Environment 2003-сегодня, Программа «СКИФ» Open TS Open T-system 2003-сегодня, Программа «СКИФ» Open TS Open T-system

Open TS: архитектура и реализация Open TS: архитектура и реализация 9 Суперкомпьютерный проект СКИФ Союзного государства исполнителей исполнителей $10M (на 5 лет на 20 предприятий) $10M (на 5 лет на 20 предприятий) ИПС РАН головные по России ИПС РАН головные по России ОИПИ НАН Беларуси – головные по Российской Федерации ОИПИ НАН Беларуси – головные по Российской Федерации Hardware, Software, Applications, Aux. Hardware, Software, Applications, Aux.

Open TS: архитектура и реализация Open TS: архитектура и реализация 10 Выпуск образцов (16)

Open TS: архитектура и реализация Open TS: архитектура и реализация 11 Пиковая производительность образцов раз

Open TS: архитектура и реализация Open TS: архитектура и реализация 12 Linpack-производительность образцов раз

Open TS: архитектура и реализация Open TS: архитектура и реализация 13 Темпы развития отрасли (Linpack)

Open TS: архитектура и реализация Open TS: архитектура и реализация 14 Флагман: «СКИФ К-1000» Пиковая производи- тельность: 2,5 Tflops Пиковая производи- тельность: 2,5 Tflops Linpack-производи- тельность: 2,0 Tflops Linpack-производи- тельность: 2,0 Tflops КПД=80.1 % КПД=80.1 % Ноябрь 2004: Наиболее мощная машина на территории СССР Ноябрь 2004: Наиболее мощная машина на территории СССР Ноябрь 2004: 98 в Top500 Ноябрь 2004: 98 в Top500

Open TS: архитектура и реализация Open TS: архитектура и реализация 15 Сравнение: Т-Система и MPI C/Fortran T-System Assembler MPI High-level a few keywords Low-level hundred(s) primitives SequentialParallel

Open TS: архитектура и реализация Open TS: архитектура и реализация 16 Подобные подходы Parallel Programming Using C++ (Scientific and Engineering Computation) by Gregory V. Wilson (Editor), Paul Lu (Editor) ABC++, Amelia, CC++, CHAOS++, COOL, C++//, ICC++, Mentat, MPC++, MPI++, pC++, POOMA, TAU, UC++ Parallel Programming Using C++ (Scientific and Engineering Computation) by Gregory V. Wilson (Editor), Paul Lu (Editor) ABC++, Amelia, CC++, CHAOS++, COOL, C++//, ICC++, Mentat, MPC++, MPI++, pC++, POOMA, TAU, UC++

Open TS: архитектура и реализация Open TS: архитектура и реализация 17 Т-Система в сравнении Related work Open TS differentiator Charm++ TS основана на FP UPC, mpC++ В TS неявный параллелизм Glasgow Parallel Haskell TS допускает низкоуровневы C/C++/ASM оптимизации OMPC++ TS дает и язык и библиотека C++ шаблонов Cilk TS поддерживает SMP, MPI, PVM, и (в планах) GRID

Open TS: архитектура и реализация Open TS: архитектура и реализация 18 Open TS: на уровне лозунгов Наша цель HPC Наша цель HPC Автоматическое динамическое распараллеливание программ Автоматическое динамическое распараллеливание программ Сочетание функциональной и императивной парадигм (и ООП) Сочетание функциональной и императивной парадигм (и ООП) Высокоуровневое программирование Высокоуровневое программирование Т++ язык: «параллельный диалект» C++ (незабытое старое: популярно с 90-ых) Т++ язык: «параллельный диалект» C++ (незабытое старое: популярно с 90-ых)

Open TS: архитектура и реализация Open TS: архитектура и реализация 19 Т-ПодходТ-Подход «Чистые» функции (tfunc) их вызовы способны порождать гранулы параллелизма «Чистые» функции (tfunc) их вызовы способны порождать гранулы параллелизма Т-Программы: Т-Программы: Функциональны – на верхнем уровне Функциональны – на верхнем уровне Императивны – на нижнем уровне (C/C++/ASM оптимизации) Императивны – на нижнем уровне (C/C++/ASM оптимизации) C-совместимая модель исполнения C-совместимая модель исполнения Неготовые значения, многократные присваивания Неготовые значения, многократные присваивания Гладкое расширения языков: C, Fortran, Рефал Гладкое расширения языков: C, Fortran, Рефал

Open TS: архитектура и реализация Open TS: архитектура и реализация 20 Т++ новые ключевые слова tfun Т-функция tfun Т-функция tval Т-переменная (Т-значение) tval Т-переменная (Т-значение) tptr Т-указатель tptr Т-указатель tout Выходной параметр (аналог &) tout Выходной параметр (аналог &) tdrop Разорвать связь поставщик- потребитель (сделать готовым) tdrop Разорвать связь поставщик- потребитель (сделать готовым) twait Редкое: ждать готовности twait Редкое: ждать готовности tct Т-контекст tct Т-контекст

Open TS: архитектура и реализация Open TS: архитектура и реализация 21 Пример программ #include #include tfun int fib (int n) { return n < 2 ? n : fib(n-1)+fib(n-2); return n < 2 ? n : fib(n-1)+fib(n-2);} tfun int main (int argc, char **argv) { if (argc != 2) { printf("Usage: fib \n"); return 1; } if (argc != 2) { printf("Usage: fib \n"); return 1; } int n = atoi(argv[1]); int n = atoi(argv[1]); printf("fib(%d) = %d\n", n, (int)fib(n)); printf("fib(%d) = %d\n", n, (int)fib(n)); return 0; return 0;}

Open TS: архитектура и реализация Open TS: архитектура и реализация 22 Open TS: Среда

Open TS: архитектура и реализация Open TS: архитектура и реализация 23 Open TS: Runtime Трехслойная архитектура (Т, M, S) Трехслойная архитектура (Т, M, S) Design: microkernel Сегодня: 10 расширений Design: microkernel Сегодня: 10 расширений «Supermemory» «Supermemory» Lightweight threads Lightweight threads DMPI: Dynamic MPI DMPI: Dynamic MPI auto selection of MPI implementation auto selection of MPI implementation dynamic loading and linking dynamic loading and linking

Open TS: архитектура и реализация Open TS: архитектура и реализация 24 SupermemorySupermemory Object-Oriented Distributed shared memory (OO DSM) Object-Oriented Distributed shared memory (OO DSM) Global address space Global address space Cell versioning Cell versioning

Open TS: архитектура и реализация Open TS: архитектура и реализация 25 Multithreading & Communications Lightweight threads провокация Lightweight threads провокация PIXELS ( threads) PIXELS ( threads) Asynchronous communications Asynchronous communications Нити A требуется неготовое значение Нити A требуется неготовое значение Передается асинхронный запрос (Active messages & Signals) чтобы стимулировать передачу данных к нити A Передается асинхронный запрос (Active messages & Signals) чтобы стимулировать передачу данных к нити A Выделяется квант на коммуникации (нет ли чего в нашем процессоре?) и переход (context switch) на другую готовую нить Выделяется квант на коммуникации (нет ли чего в нашем процессоре?) и переход (context switch) на другую готовую нить Latency Hiding в коммуникациях Latency Hiding в коммуникациях

Open TS: архитектура и реализация Open TS: архитектура и реализация 26 DMPIDMPI Dynamic MPI Dynamic MPI автоматический подбор реализации MPI автоматический подбор реализации MPI динамическая загрузка (dynamic loading and linking) динамическая загрузка (dynamic loading and linking) Семь реализаций MPI поддержаны: Семь реализаций MPI поддержаны: LAM LAM MPICH MPICH SCALI MPI SCALI MPI MVAPICH MVAPICH IMPI IMPI MPICH-G2 MPICH-G2 PACX-MPI PACX-MPI И даже PVM может быть использован вместо MPI И даже PVM может быть использован вместо MPI

Open TS: архитектура и реализация Open TS: архитектура и реализация 27 Debugging: WAD, LTDB

Open TS: архитектура и реализация Open TS: архитектура и реализация 28 Сбор статистики

Open TS: архитектура и реализация Open TS: архитектура и реализация 29 Сообщения из разных мест

Open TS: архитектура и реализация Open TS: архитектура и реализация 30 Open TS на территориально- распределенных установках Meta-cluster messaging support (MPICH-G2, IMPI, PACX-MPI) Meta-cluster messaging support (MPICH-G2, IMPI, PACX-MPI) Customizable scheduling strategies (network topology information used) Customizable scheduling strategies (network topology information used)

Институт программных систем Российской академии наук и К о31 Контракт с Microsoft: Open TS vs MPI case study

Open TS: архитектура и реализация Open TS: архитектура и реализация 32 ПриложенияПриложения Популярные и широко используемые Популярные и широко используемые Разработаны независимыми MPI-эксперта- ми (без порочащих связей с Т-Системой) Разработаны независимыми MPI-эксперта- ми (без порочащих связей с Т-Системой) PovRay – Persistence of Vision Ray-tracer, С-пакет + C/MPI-patch PovRay – Persistence of Vision Ray-tracer, С-пакет + C/MPI-patch ALCMD/MP_lite – молекулярная динамика (Ames Lab) Фортран программа + MP_Lite/MPI ALCMD/MP_lite – молекулярная динамика (Ames Lab) Фортран программа + MP_Lite/MPI

Open TS: архитектура и реализация Open TS: архитектура и реализация 33 Ключевой вопрос: Позволяет ли Т-Система удобно создавать прикладные системы? Позволяет ли Т-Система удобно создавать прикладные системы? Экономится ли труд программиста? Экономится ли труд программиста? Действительно ли более читабельный и более компактный код? (less space for bugs) Действительно ли более читабельный и более компактный код? (less space for bugs) И при этом мы не сильно жертвуем производительностью (до 30% от MPI)? И при этом мы не сильно жертвуем производительностью (до 30% от MPI)?

Open TS: архитектура и реализация Open TS: архитектура и реализация 34 T-PovRay vs MPI PovRay: сложность кода Программа Объем кода MPI modules for PovRay 3.10g 1,500 строк MPI patch for PovRay 3.50c 3,000 строк T++ modules (for both versions 3.10g & 3.50c) 200 строк 200 строк

Open TS: архитектура и реализация Open TS: архитектура и реализация 35 T-PovRay vs MPI PovRay: производительность 16 dual Athlon 1800, AMD Athlon MP RAM 1GB, FastEthernet, LAM 7.0.6

Open TS: архитектура и реализация Open TS: архитектура и реализация 36 T-PovRay vs MPI PovRay: производительность 2CPUs AMD Opteron GHz RAM 4GB, GigE, LAM 7.1.1

Open TS: архитектура и реализация Open TS: архитектура и реализация 37 ALCMD/MPI vs ALCMD/OpenTS Библиотека MP_Lite (кусочек) переписана на T++ Библиотека MP_Lite (кусочек) переписана на T++ Fortran код остался нетронутым Fortran код остался нетронутым

Open TS: архитектура и реализация Open TS: архитектура и реализация 38 Ключевой вопрос: Позволяет ли Т-Система удобно создавать библиотеки (подобные MP_Light) для дальнейшей разработки прикладных систем? Позволяет ли Т-Система удобно создавать библиотеки (подобные MP_Light) для дальнейшей разработки прикладных систем? Экономится ли труд программиста? Экономится ли труд программиста? Действительно ли более читабельный и более компактный код? (less space for bugs) Действительно ли более читабельный и более компактный код? (less space for bugs) И при этом мы не сильно жертвуем производительностью (до 30% от MPI)? И при этом мы не сильно жертвуем производительностью (до 30% от MPI)?

Open TS: архитектура и реализация Open TS: архитектура и реализация 39 ALCMD/MPI vs ALCMD/OpenTS : code complexity Program Source code volume MP_Lite total/MPI ~20,000 lines MP_Lite,ALCMD-related/ MPI ~3,500 lines MP_Lite,ALCMD-related/ OpenTS 500 lines 500 lines

Open TS: архитектура и реализация Open TS: архитектура и реализация 40 ALCMD/MPI vs ALCMD/OpenTS: производительность 16 dual Athlon 1800, AMD Athlon MP RAM 1GB, FastEthernet, LAM 7.0.6, Lennard-Jones MD, atoms

Open TS: архитектура и реализация Open TS: архитектура и реализация 41 ALCMD/MPI vs ALCMD/OpenTS: производительность 2CPUs AMD Opteron GHz RAM 4GB, GigE, LAM 7.1.1, Lennard-Jones MD, atoms

Open TS: архитектура и реализация Open TS: архитектура и реализация 42 ALCMD/MPI vs ALCMD/OpenTS: performance 2CPUs AMD Opteron GHz RAM 4GB, InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD, atoms

Институт программных систем Российской академии наук и К о43 Приложения, написанные на Open TS

Open TS: архитектура и реализация Open TS: архитектура и реализация 44 Т-ПриложенияТ-Приложения MultiGen – оценка биологической активности веществ MultiGen – оценка биологической активности веществ Дистанционное зондирование Земли (ДЗЗ) Дистанционное зондирование Земли (ДЗЗ) Моделирование плазмы Моделирование плазмы Моделирование белков Моделирование белков Аэромеханика Аэромеханика Query engine for XML Query engine for XML ИИ-приложения (3 штуки) ИИ-приложения (3 штуки) и др. и др.

Open TS: архитектура и реализация Open TS: архитектура и реализация 45 MultiGen Челябинский Государственный Университет Level 0 Level 1 Level 2 Multi-conformation model К0 К11К12 К21 К22

Open TS: архитектура и реализация Open TS: архитектура и реализация 46 MultiGen: Speedup SubstanceAtom number Rotations number ConformersExectution 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)

Open TS: архитектура и реализация Open TS: архитектура и реализация 47 Аэромеханика НИИ механики МГУ им. М.В.Ломоносова

Open TS: архитектура и реализация Open TS: архитектура и реализация 48 Аэромеханика НИИ механики МГУ им. М.В.Ломоносова

Open TS: архитектура и реализация Open TS: архитектура и реализация 49 Восстановление изображения из голограммы, снятой бортовой РЛС

Open TS: архитектура и реализация Open TS: архитектура и реализация 50 Моделирование перспективной широкополосной РЛС Graphical User Interface Non-PSI RAS development team (Space research institute of Khrunichev corp.)

Open TS: архитектура и реализация Open TS: архитектура и реализация 51 Классификация изображений (Landsat) Вычислительный Web-сервис Вычислительный Web-сервис

Open TS: архитектура и реализация Open TS: архитектура и реализация 52 Дальнейшие планы Более глубокая поддержка многоядерных CPU Более глубокая поддержка многоядерных CPU (Территориально-) Распределенные системы (Территориально-) Распределенные системы Планировщик Планировщик Другие коммуникационные реализации DMPI Другие коммуникационные реализации DMPI Интерфейсы к Web-сервисам Интерфейсы к Web-сервисам Fault-tolerance Fault-tolerance Оптимизация под различные современные CPU Оптимизация под различные современные CPU Скелеты алгоритмов, шаблоны и параллельные библиотеки высокого уровня: Скелеты алгоритмов, шаблоны и параллельные библиотеки высокого уровня: sum = fold + sum = fold + minimum = fold min minimum = fold min prod = fold * prod = fold *

Open TS: архитектура и реализация Open TS: архитектура и реализация 53 За рамками доклада Другие Т-диалекты: T-Refal, T-Fortan Другие Т-диалекты: T-Refal, T-Fortan Мемоизация (табулирование) функций Мемоизация (табулирование) функций Автоматическое переключение между call- стилем и fork-стилем при вызове Т-функций Автоматическое переключение между call- стилем и fork-стилем при вызове Т-функций Checkpointing Checkpointing Heartbeat-механизм Heartbeat-механизм Ароматы (Flavours) tptr-указателей: normal,glue and magnetic ленивые, жадные и супержадные передачи данных Ароматы (Flavours) tptr-указателей: normal,glue and magnetic ленивые, жадные и супержадные передачи данных

Open TS: архитектура и реализация Open TS: архитектура и реализация 54 БлагодарностиБлагодарности Суперкомпьютерный проект СКИФ Суперкомпьютерный проект СКИФ Программы РАН Программы РАН ОИВТС: «Высокопроизводительные вычислительные системы с новыми принципами организации вычислительных процессов» ОИВТС: «Высокопроизводительные вычислительные системы с новыми принципами организации вычислительных процессов» Президиум: «Создание основы для внедрения распределенных научных информационно- вычислительной среды на GRID технологиях» Президиум: «Создание основы для внедрения распределенных научных информационно- вычислительной среды на GRID технологиях» РФФИ: грант офи_а РФФИ: грант офи_а Microsoft – контракт «Open TS vs MPI case study» Microsoft – контракт «Open TS vs MPI case study»

Институт программных систем Российской академии наук и К о55 Спасибо за внимание... … … Готов ответить на вопросы … …