Интерфейсы уровней открытой Т-системы
Открытая Т-система строится на базе исполняемой спецификации (Т-микроядра).
Назначение исполняемой спецификации – определить бызовые сущности (как классы языка C++), специфицировать их программные интерфейсы и реализовать минимально-необходимую функциональность. Каждая базовая сущность обеспечивает поддержку одного из аспектов супервычислительной среды, и все вместе они обеспечивают традиционную функциональность Т-системы (см. [1], [2], [3]).
Исполняемая спецификация подразделяется на Т-рантайм и конвенции компиляции языка T++ в язык C++ (конвенции компиляции определяются в модулях txx и TXX.mc).
Таким образом, по отношеню к прикладному программному обеспечению открытая Т-система имеет два представления:
Как реализация языка программирования T++
Как библиотека, которую можно использовать для языка C++ напрямую.
Используемые технологии компиляции и конвертирования как раз и реализуют представление#1 через представление#2 (то есть перводят специфические ключевые слова языка T++ в соответствии с их семантикой в обращения к библиотеке Т-рантайма).
Реально рантайм (модуль trt) определяет базовые сервисные механизмы, необходимые для поддержки используемой технологии “Т-Суперструктура” в рамках мульти- или мета-компьютера.
Т-Суперструктура, или функционально-ориентированная супервычистительная надстройка,
структурно организована как три программных уровня S, M и Т (модули super, motor и tss).
Итак, мы перечислили все модули Т-микроядра. Перейдем теперь к описанию назначения и функциональности отдельных уровней Т-Суперструктуры.
S-уровень
Назначение
S-уровня:
Создать высокопроизводительную надстройку над стандарными средствами управления памятью (кэширующий аллокатор, механизмы подсчета ссылок) и потоками исполнения (кэширование тредов).
Ввести абстракцию суперданных и обеспечить высокоэффективый разноприоритетный транспорт для их доставки в виде активных сообщений.
Поддержать Суперпамять, или распределенную программно-управляемую память, доступную для всех существующих в распределеннной супервычислительной среде потоков.
S-уровень может быть по-разному реализован для разных архитектур.
M-уровень
Назначение M-уровня:
Поддержать мобильные потоки исполнения, объекты и ссылки (MoTOR = Mobile Treads, Objects & References)
Поддержать “копирование по необходимости” (Copy-On-Write) для суперданных.
Поддержать операцию блокирования и освобождения мобильных объектов.
Поддержать иерархию досок объявлений с информацией о нераспределенных задачах и незадействованных процессорных и прочих ресурсов.
T-уровень
Назначение T-уровня:
Реализовать понятия неготового значения и ссылки на него
Реализовать понятие Т-функция
Структура Т-уровня:
T-API и T-контекст
Понятие Т-контекста является ключевым при описании семантики языка T++. Т-контекст определяет специфические, несвойственные для последовательных программ свойства, и формируется на всех этапах существования программы:
при создании исходного кода (ключевые слова языка T++)
при компиляции (опции, указанные при компиляции программных модулей)
во время статической или динамическая компоновки (указание набора расширений Т-ядра и их параметров)
во время запуска программы (учет опций командной строки -tct)
во время исполнения программы (вызовы функций tct в пользовательском коде).
С точки зрения пользователя при работе с Т-системой появляются некоторые сущности, специфические для обычных последовательных программ, но зачастую содержащие в себе привычные всем переменные, указатели, функции. Их специфические свойства как раз и определяются Т-контекстом, в котором они появляются. Перечислим эти свойства:
Ячейка Суперпамяти
Аллокация/освобождение N последовательных ячеек
Чтение/запись суперданных
Ожидание изменений ячейки с освобождением процессора
Суперданные
Копирование по необходимости (используя конструктор копирования)
Пересылка в другое вычислительное пространство
Суперпоток
Аллокация/освобождение суперпотока
Мобильное задание
Создание мобильного задания
Активация мобильного задания
Мобильный объект
Создание мобильного объекта
Очередь на операции с мобильным объектом
Т-функция
Определение прототипа Т-функции
Определение реализации Т-функции
T-переменная
Определение Т-переменной
Множественное присваивание неготовых данных