и система программирования OpenTS

advertisement
Институт программных систем
Российской академии наук
Системное программное
обеспечение
суперкомпьютеров
«СКИФ» и система
программирования 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
Download