Проект: ИПС РАН/Т-система Т-система: система программирования и run-time среда, реализующие автоматическое динамическое распараллеливание программ |
|
Основные разработчики | |
ИПС РАН (Институт
программных систем РАН),
ИЦМС (Исследовательский
центр мультипроцессорных систем) директор центра, д.ф.-м.н., Абрамов Сергей Михайлович, с.н.с. Адамович Алексей Игоревич |
|
Тип (теория, программная система, приложение, аппаратные средства) проекта | |
Программная система: система программирования и run-time среда | |
Краткое описание | |
Т-система реализует принцип автоматического
динамического распараллеливания программ за
счет использования функциональной парадигмы
(программы для Т-системы определяют
набор чистых--без побочного эффекта--функций)
и особой модели вычисления функциональных
программ: процесс вычисления--это процесс
автотрансформации вычислительной сети. Т-ядро (run-time support компонента Т-системы) реализует поддержку вычислительной модели "автотрансформация вычисляемой сети" -- поддерживает основные Т-структуры данных и основные операции модели вычисления:
Разработка программ для исполнения в среде Т-системы: сегодня нами используется язык t2cp (в дальнейшем возможна реализация других языков для программирования в Т-системе)--расширение языка С небольшим числом новых конструкций (Т-конструкций):
Особенности программирования: Т-программа определяет набор чистых Т-функций. Однако в рамках тела каждой функции, программист может использовать любые С-конструкции и С-данные, использовать стиль программирования , к которому он привык--например, императивный стиль. При этом, должен отсутсвовать побочный эффект у Т-функций: все данные для вычислений в теле функции должны быть получены явно через ее аргументы, все результаты вычисления--переданы через ее выходы/результаты. Язык t2cp поддержан препроцессором, преобразующим входную Т-программу в программу на языке С (перечисленные выше Т-конструкции заменяются на соответствующие вызовы Т-ядра; остальная часть программы оставляется без изменения). Результат препроцессирования обрабатывается стандартным в ОС Linux компилятором языка С и собирается с библиотеками Т-ядра в исполняемый файл, пригодный для запуска на любой установке вида "TCP/IP-сеть Linux-машин" (содержащей любое число моно- или SMP-узлов сети, любое число процессоров...). При запуске исполняемого файла считывается конфигурационный файл с перечислением разрешенных для использования в данном запуске программы вычислительных ресурсов: IP-адресов и характеристик (монопроцессор или SMP-мультипроцессор) узлов сети. За счет механизма rcp/rsh на указанных узлах вычислительной установки запускаются экземпляры Т-ядра, образующих общую среду исполнения Т-задачи. Эта совокупность экземпляров Т-ядра автоматически (без специальных спецификаций со стороны программиста) в динамике (во время выполнения Т-программы) поддерживает все операции, связанные с параллельным выполнением Т-программы:
|
|
Область применения | |
Сегодня встречаются программы/задачи (из
таких областей, как компьютерная алгебра,
интеллектуальные системы, моделирование
сложного поведения и др.), которые
Именно на такой класс задач--задач с динамическим (скрытым до момента запуска программы) параллелизмом--и была первоначально ориентирована разработка. Уточнение класса задач, для которых использование Т-системы целесообразно, является предметом дальнейших исследований и во многом будет определяться результатами использования Т-системы для решения практических задач (см. URL-ссылки на отчеты о решении задач в Т-системе). |
|
Связь с другими проектами/платформами | |
Т-система разработана для платформ класса "IP-сеть рабочих станций (Intel, PC, mono или SMP) с ОС Linux" (в дальнейшем возможен перенос на другие платформы). | |
Завершенность проекта | |
Реализована и используется для разработки
приложений. Завершены академичeские
исследования, Т-система и Т-язык
(t2cp)--реализованы. На t2cp написан ряд задач--как
демонстрационных, так и практически
значимых--имеющих различную алгоритмическую
организацию и относящихся к различным областям.
В результате выполнения всех этих задач
достигался высокий уровень распараллеливания
программ Т-системой. Для выполнения приложений используется мультикомпьютер, реализованный (ИПС РАН) как быстрая локальная сеть (Switched Fast Ethernet 100 Mbps) из 9 различных Linux-машин, в том числе мультипроцессорных SMP-компьютеров двух типов:
Всего в данной установке 24 процессора Pentium Pro/200 и Pentium II/266, 1,408 Mb оперативной памяти и 70.4 Gb дисковой памяти. Суммарная теоретическая пиковая производительность установки--5.6GFlops, стоимость установки--ок. $55,000. |
|
Контакты, ссылки на доп. информацию | |
Абрамов Сергей Михайлович, тел.: +7(08535)98.031, +7(08535)98.032, e-mail: abram@botik.ru Адамович Алексей Игоревич, тел.: +7(08535)98.042, lexa@adam.botik.ru См. также: |
© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ