Загрузка...
скачать
Реферат на тему:

Т-Система



План:

    Введение
  • 1 История
  • 2 Язык Т++ и С++[2]
    • 2.1 Итегрированные системы
    • 2.2 Пример программы
  • 3 Основные идеи Т-Системы
  • Примечания

Введение

Т-Система — средство автоматического динамического распараллеливания программ, призванное облегчить процесс разработки и использования сложных параллельных программ и их эффективное использование на различном, в том числе и неоднородном оборудовании. Разработана в ИПС РАН, в настоящее время развивается в ИПС РАН и МГУ.

OpenTS (Open T-System, Т-система с открытой архитектурой) — это современная реализация Т-системы. Она обеспечивает автоматическое динамическое распараллеливание программ и предоставляет среду исполнения для языка программирования высокого уровня Т++, который является параллельным диалектом языка Си++[1].

OpenTS использует легковесные потоки и быстрым переключением (несколько наносекунд) и может работать с более чем миллионом легковесных потоков на процессор. На основе этих потоков реализован ряд возможностей, таких как мобильные потоки, объекты и ссылки, распределенная сборка мусора, доска объявлений для обмена данными и заданиями, и т. д.

OpenTS была успешно опробована на широком круге задач, и на вычислительных установках различного масштаба: от многопроцессорных PC до вычислительных комплексов с различной архитектурой и разной мощности (различные многопроцессорные Windows/Linux Intel/AMD-кластеры, терафлопная российская установка МВС-1000М, и др.). OpenTS поддерживает широкий спектр параллельных платформ: многоядерные процессоры, SMP-системы, кластеры, метакластеры и GRID-системы.


1. История

Идея Т-Системы зародилась в конце 1980-х годов в Институте Программных Систем РАН [1]. Основной идеей стало введение понятия Т-функциий как поставщиков так называемых неготовых значений, что позволяло выполнять одновременно несколько Т-функций на разных процессорах и за счёт этого достигать параллелизма.

В 1998 году проект обрёл второе рождение с активным участием МГУ. В 2000 г. в рамках российско-белорусского проекта "СКИФ" была начата работа над новой реализацией Т-Системы под кодовым названием GRACE. Однако уже после первого года разработки обнаружились существенные недостатки данной реализации. Плохая структура системы, отсутствие чёткой идеологии и архитектуры приводили к многочисленным ошибкам, зависаниям, переполнениям стека. Но самое главное, что многочисленные попытки разрешать проблемы зачастую снижали скорость и эффективность работы уже написанных программ, а в некоторых случаях делали их неработоспособными.

В 2002 году было принято решение о написании новой реализации Т-Системы. Она получила название OpenTS, или Т-система с открытой архитектурой. В отличие от двух предыдущих реализаций, в OpenTS изначально закладывались определённая архитектура, основанная на опыте разработки предыдущих вариантов системы. OpenTS успешно прошла государственные испытания по проекту "СКИФ" на соответствие критериям программного обеспечения кластерного уровня.

В настоящее время в МГУ ведётся работа над двумя независимыми ветками OpenTS под условным названием NewTS.


2. Язык Т++ и С++[2]

2.1. Итегрированные системы

Т-система предоставляет интегрированную среду разработки посредством расширения среды С++ Microsoft Visual Studio патчем. Среда разработки Т-системы предоставляет возможность включить препроцессор фильтрующий исходный код Т++ (преобразует исходный код Т++ в С++) для прогона программы в последовательном режиме (для отладки кода С++). После отладки в последовательном режиме можно производить отладку исходного кода Т++, а затем его компиляцию: производится оптимизация и преобразование исходного кода, подключаются библиотеки времени исполнения параллельных вычислений[3] и производится компиляция кода С++.


2.2. Пример программы

Пример программы вычисления числа Фибоначчи:

tfun int fib(int n) {
  return n < 2 ? n : fib(n-1) + fib(n-2);
}
 
tfun int main (int argc, char *argv[]) {
  if (argc != 2) { printf("Usage: fib <n>\n"); return 1; }
  int n = atoi(argv[1]);
  printf("fib(%d) = %d\n", n, (int)fib(n));
  return 0;
}

Как видно из примера язык Т++ внёс назначительные изменения в синтаксис языка С++, а именно: указатели tfun на разрешение параллельных вычислений. При всей неэффективности такой реализации вычисления n-го числа Фибоначчи, данная программа показывает не только простоту и наглядность Т-Системы, но и демонстрирует ускорение при выполнении на нескольких процессорах, причём программисту не надо знать об их количестве и заниматься распределением полезной нагрузки между ними.


3. Основные идеи Т-Системы

1. Функция, описанная с ключевым словом tfun (так называемая Т-функция), является основным объектом (гранулой) параллелизма. Запись вида:

tfun int f(int a,double b)

описывает Т-функцию с двумя аргументами и одним выходным значением.

2. Вызов Т-функции не вызывает блокирование программы до завершения работы Т-функции. Результатом вызова является неготовое значение (Т-значение).

3. Неготовое значение может быть присвоено Т-переменной. Операция присваивания Т-переменной неготового значения не вызывает блокирование программы. Т-переменная описывается с указанием ключевого слова tval (а не tvar, это результат следования традиции, соответствующий класс ядра OpenTS называется TVar). Запись

tval int x;

описывает Т-переменную типа int.

4. По окончании вычисления Т-функции соответствующее неготовое значение становится готовым и далее повторяет поведение обычного значения базового типа.

5. Операции взятия значения или приведения к базовому типу для Т-переменных вызывает блокирование выполнения функции до тех пор, пока значение Т-переменной не станет готовым.

скачать

Данный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 14.07.11 09:54:51

Похожие рефераты: Система РОСС (Российская Отечественная Система Самозащиты), Система 60, Система, Система CEE, Око (система), Система СИ, Мир-система, Система B-V, Система UBV.

Категории: Параллельные вычисления, Языки программирования семейства C.

Текст доступен по лицензии Creative Commons Attribution-ShareAlike.