Институт программных систем Российской академии наук Системное программное обеспечение суперкомпьютеров «СКИФ» и система программирования OpenTS Абрамов С. М. Научная сессия ОИТВС Москва, ИПУ РАН, 2006-04-20 1 Система программирования OpenTS Научные интересы — в области Что войдет в доклад системного программирования: Программное обеспечение для региональных компьютерных сетей Nadmin: система администрирования Botik Tools: пакет программ для абонентов (Botik Tester, Botik Key, Botik Look) Botik Mon и Botik Map — мониторинг и спец. ГИС Метавычисления и их приложения функциональное программирование и реализация языка рефал (различных диалектов и на различных платформах) теоретические основы информатики Системное программное обеспечение для параллельных архитектур (для суперкомпьютеров семейства «СКИФ») Т-Система — система программирования параллельных приложений OpenTS — Т-система с открытой архитектурой 2 Институт программных систем Российской академии наук Суперкомпьютерная программа «СКИФ» Союзного государства. Системное программное обеспечение для суперкомпьютеров «СКИФ» 3 Система программирования OpenTS Суперкомпьютерный проект СКИФ Союзного государства 2000-2004 10 + 10 исполнителей $10M (на 5 лет на 20 предприятий) ИПС РАН — головной по России ОИПИ НАН Беларуси – головной по Белоруссии Hardware, Software, Applications, Aux. 4 Система программирования OpenTS Выпуск образцов (16) “Кардиология” 9/5 G 3+1-1U+4U Intel P-IV-1266 “Первенец” 20/11G “ВМ-5100” 48/26G “Myrin” 89/59G “К-500” 717/415G “К-1000” 2534/2030G 16-3U; Intel P-III-600 16-2U Intel P-IV-1500 8-1U Intel Xeon 2.8 64-1U Intel Xeon 2.8 288-1U; IB 4x; AMD Opteron 248(2.2) 2000 2001 2002 2003 2004 “Студент” 11/6G “ТКС” 403/230G “T-Bridge8i” 45/37G “Первенец” 20/11G 16-3U; Intel P-III-600 “Гибрид” 2.4/1.2G 2-4U+6U; Intel P-III-800 9-MiniTower Intel P-III-600 36-1U Intel Xeon 2.8 4-1U; IB 4x Intel Itanium 2 (1.4) “Первенец-M” 98/57G “T-Forge32” 115/74G “T-Forge48” 230/184G 16-3U; AMD AthlonMP1800+ НИИ мех МГУ 49/28G 4+4-4U+5U; AMD AthlonMP1800+ 16-2U; AMD Opteron 224(1.8) 24-1U; IB 4x; AMD Opteron (2.4) “T-Forge20HB” 88/70G 10-HB; IB 4x; AMD 5 Opteron 248(2.2) Система программирования OpenTS Linpack-производительность образцов 2001 GFlops 2002 2003 2000 1000 472 2004 2032 185 раз 57 100 26 10 1 11 2000 Первенец 2001 ВМ 5100 Кардио- Первелогия нец-М НИИ мех. МГУ 2002 Гибрид Студент Myrin TForge 32 2003 СКИФ ТКС ЕС К-500 1710.03 TForge 20HB 2004 TForge 48 TСКИФ Bridge К-1000 8i 6 Система программирования OpenTS Флагман: «СКИФ К-1000» Пиковая производительность: 2,5 Tflops Linpack-производительность: 2,0 Tflops КПД=80.1 % Ноябрь 2004: Наиболее мощная машина на территории СССР (сегодня: второе место 2) Ноябрь 2004: № 98 в Top500 7 Система программирования OpenTS Комплект ПО КУ, литера «О1» ядро ОС Linux-SKIF PVFS-SKIF — параллельная файловая система OpenPBS-SKIF — система очередей FLAME-SKIF — система мониторинга и управления (reset, power on/off) установками семейства «СКИФ» 8 Система программирования OpenTS Комплект ПО КУ, литера «О1» OpenTS — Т-система с открытой архитектурой компилятор TG++ для языка T++ транслятор TF2TC (T-Fortran T++) TDB — распределенный интерактивный отладчик MPIпрограмм, с поддержкой отладки Т-программ (замена TotalView) 9 Система программирования OpenTS Комплект ПО КУ, литера «О1» 6 прикладных программных систем в среде OpenTS 12 адаптированных свободных пакетов, библиотек и приложений 14 приложений собственной разработки (из них 3 в области ИИ) Совместимость платформы с коммерческими инженерными пакетами (более 6 отраслей реальных применений) 10 Институт программных систем Российской академии наук Основные идеи Т-Системы и обзор архитектуры Open TS 11 Система программирования OpenTS Т-Система. История Середина 80-ых Основные идеи Т-Системы 1990-ые Первая реализация Т-Системы 2000-2002, Программа «СКИФ» GRACE — Graph Reduction Applied to Cluster Environment 2003-сегодня, Программа «СКИФ» Open TS — Open T-system (открытая архитектура) 12 Система программирования OpenTS Сравнение: Т-Система и MPI High-level несколько ключевых слов (понятий) Low-level сотни примитивов C/Fortran T-System Assembler MPI Sequential Parallel 13 Система программирования OpenTS Open TS: основные свойства Автоматическое динамическое распараллеливание программ Много платформ — один инструмент разные ОС, multicore, SMP, кластеры, GRID Сочетание парадигм: функциональной и императивной (ООП) Высокоуровневое программирование: Т++ язык — «диалект» C++ незабытое старое: популярно с 90-ых 14 Система программирования OpenTS Т++ новые ключевые слова tfun tval tptr tout tdrop — — — — — Т-функция Т-переменная (Т-значение) Т-указатель Выходной параметр (аналог &) Разорвать связь поставщикпотребитель (сделать готовым) twait — Редкое: ждать готовности tct — Т-контекст 15 Система программирования OpenTS Т-Подход «Чистые» функции (tfunc) — их вызовы способны порождать гранулы параллелизма Т-Программы: Функциональны – на верхнем уровне Императивны – на нижнем уровне (C/C++/ASM оптимизации) C-совместимая модель исполнения Неготовые значения, многократные присваивания Гладкие расширения языков: C, Fortran, рефал 16 Система программирования OpenTS Open TS: полноценная система программирования Средства разработки T++ Компилятор (входной модуль gcc) T++ C++ конвертор компиляторы для других языков Средства отладки и трассировки (TGDB, tracing) Микроядро Т-системы и библиотека поддержки времени исполнения 17 Система программирования OpenTS Многопоточность и коммуникации Легковесные потоки (lightweight threads): раскрепощение программиста Пример программы: +1 000 000 потоков на процессор Асинхронные взаимодействия Нити A требуется неготовое значение Передается асинхронный запрос (Active messages & Signals), чтобы стимулировать передачу данных к нити A Выделяется квант на коммуникации (нет ли чего в нашем процессоре?) и переход (context switch) на другую готовую нить Эффект сокрытия задержек (Latency Hiding) в коммуникациях 18 Система программирования OpenTS Dynamic MPI автоматический подбор реализации MPI динамическая загрузка и связывание (dynamic loading and linking) Семь реализаций MPI поддержаны: DMPI LAM MPICH SCALI MPI MVAPICH IMPI MPICH-G2 PACX-MPI для территориальнораспределенных установок (GRID) Еще: PVM и TCP/IP могут быть использованы DMPI в качестве транспорта вместо MPI 19 Институт программных систем Российской академии наук 2005 — Сравнение: Open TS vs MPI 20 Система программирования OpenTS Заказчик: 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» 21 Система программирования OpenTS Приложения Популярные и широко используемые Разработаны независимыми MPI-экспертами (без «связей» с Т-Системой) PovRay – Persistence of Vision Ray-tracer, Спакет + C/MPI-patch ALCMD/MP_lite – молекулярная динамика (Ames Lab) Фортран-программа + MP_Lite/MPI 22 Система программирования OpenTS Ключевой вопрос: Позволяет ли Т-Система легко, удобно создавать прикладные системы? Экономится ли труд программиста? Действительно ли более читабельный и более компактный код? (less space for bugs) И при этом мы не сильно жертвуем производительностью (до 30% от MPI)? 23 Система программирования OpenTS T-PovRay vs MPI PovRay: сложность кода Программа Объем исходного кода MPI модуль для PovRay 3.10g 1,500 строк MPI «заплатка» для PovRay 3.50c 3,000 строк T++ модуль (для двух версий 3.10g и 3.50c) 200 строк 24 Система программирования OpenTS T-PovRay vs MPI PovRay: производительность 210% 200% 190% 180% 170% 160% 150% 140% 130% 120% 110% 100% 90% Time MPI/Time OpenTS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Number of processors 16 dual Athlon 1800, AMD Athlon MP 1800+ RAM 1GB, FastEthernet, LAM 7.0.6 25 16 Система программирования OpenTS T-PovRay vs MPI PovRay: производительность 210% 200% 190% 180% 170% 160% 150% 140% 130% 120% 110% 100% 90% Time MPI/Time OpenTS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Number of processors 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB, GigE, LAM 7.1.1 15 16 26 Система программирования OpenTS ALCMD/MPI vs ALCMD/OpenTS ALCMD ALCMD MP_LiteMPI MP_LiteOpenTS MPI OpenTS Библиотека MP_Lite (кусочек) переписана на T++ Fortran-код остался нетронутым 27 Система программирования OpenTS Ключевой вопрос: Позволяет ли Т-Система легко, удобно создавать библиотеки (подобные MP_Light) для дальнейшей разработки прикладных систем? Экономится ли труд программиста? Действительно ли более читабельный и более компактный код? (less space for bugs) И при этом мы не сильно жертвуем производительностью (до 30% от MPI)? 28 Система программирования OpenTS ALCMD/MPI vs ALCMD/OpenTS : сложность кода Программа MP_Lite/MPI MP_Lite/OpenTS Объем исходного кода ~3,500 строк 500 строк 29 Система программирования OpenTS ALCMD/MPI vs ALCMD/OpenTS: производительность 110% Time MPI/Time OpenTS 100% 90% 80% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Number of processors 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB, GigE, LAM 7.1.1, Lennard-Jones MD, 512000 atoms 16 30 Система программирования OpenTS ALCMD/MPI vs ALCMD/OpenTS: performance 110% Time MPI/Time OpenTS 100% 90% 80% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Number of processors 2CPUs AMD Opteron 248 2.2 GHz RAM 4GB, InfiniBand,MVAMPICH 0.9.4, Lennard-Jones MD,512000 atoms 31 Институт программных систем Российской академии наук Приложения, написанные на Open TS 32 Система программирования OpenTS Т-Приложения MultiGen – оценка биологической активности веществ Дистанционное зондирование Земли (ДЗЗ) Моделирование плазмы Моделирование белков Аэромеханика Query engine for XML ИИ-приложения (3 штуки) и др. 33 Система программирования OpenTS MultiGen Челябинский Государственный Университет К0 Level 0 Level 1 К11 К12 Level 2 К21 К22 Multi-conformation model 34 Система программирования OpenTS 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) Substance Atom number Rotations number Conformers Exectution time (min.:с) 1 node 4 nodes 16 nodes NCI-609067 28 4 13 9:33 3:21 1:22 TOSLAB A2-0261 82 18 49 115:27 39:23 16:09 NCI-641295 126 25 74 266:19 95:57 34:48 35 Система программирования OpenTS Аэромеханика НИИ механики МГУ им. М.В.Ломоносова 36 Система программирования OpenTS Аэромеханика НИИ механики МГУ им. М.В.Ломоносова 37 Система программирования OpenTS Восстановление изображения по данным бортовой РЛС («Алмаз») 45 40 35 30 25 20 15 10 5 0 1 4 8 12 16 20 24 28 38 Система программирования OpenTS Моделирование перспективной широкополосной РЛС 300 250 200 150 100 50 0 1 4 8 12 16 20 24 28 39 Система программирования OpenTS Классификация изображений (Landsat) Вычислительный Web-сервис 40 Система программирования OpenTS Дальнейшие планы Более глубокая поддержка многоядерных CPU (Территориально-) Распределенные системы Планировщик Другие коммуникационные реализации DMPI Интерфейсы к Web-сервисам Счет, устойчивый к отказам (fault-tolerance) Перенос на другие архитектуры (IBM Blue Gene), оптимизация под различные современные CPU Скелеты алгоритмов, шаблоны и параллельные библиотеки высокого уровня: sum = fold + minimum = fold min prod = fold * 41 Система программирования OpenTS За рамками доклада Другие Т-диалекты: T-Refal, T-Fortan Мемоизация (табулирование) функций Автоматическое переключение между callстилем и fork-стилем при вызове Т-функций Контрольные точки (Checkpointing) Heartbeat-механизм Ароматы (Flavours) tptr-указателей: “normal”, “glue” and “magnetic” — ленивые, жадные и супержадные передачи данных 42 Система программирования OpenTS Благодарности Суперкомпьютерная программа «СКИФ» Союзного государства Программы РАН ОИВТС: «Высокопроизводительные вычислительные системы с новыми принципами организации вычислительных процессов» Президиум: «Создание основы для внедрения распределенных научных информационновычислительных сред на GRID технологиях» РФФИ: грант 05-07-08005-офи_а Microsoft – контракты «Open TS vs MPI case study» и «Porting Open TS @ Microsoft Windows Computing Cluster Server» 43 Институт программных систем Российской академии наук Спасибо за внимание... … … Готов ответить на вопросы … … 44 Система программирования OpenTS Т-Система: иллюстрация идеи 45 Система программирования OpenTS Т-Система: иллюстрация идеи 46 Система программирования OpenTS Т-Система: иллюстрация идеи 47 Система программирования OpenTS Т-Система: иллюстрация идеи 48 Система программирования OpenTS Т-Система: иллюстрация идеи 49 Система программирования OpenTS Т-Система: иллюстрация идеи 50 Система программирования OpenTS Т-Система: иллюстрация идеи 51 Система программирования OpenTS Т-Система: иллюстрация идеи 52