Введение для пользователей (User's Guide)

Прежде чем дать детальное описание среды динамического распараллеливания программ GRACE, скажем несколько слов о том, как выглядит для пользователя данное средство программирования, и каково его положение в том широком спектре программного обеспечения, которое используется на обычных последовательных копмпьютерах и кластерах.

В качестве средств разработки на обычной последовательной ЭВМ используются компилятор с некоторого языка программирования, среда поддержки исполнения (runtime support), которая часто реализуется как библиотека, с которой собирается пользовательская программа, а также дополнительные средства для отладки, трассировки и профилирования программ.

Вся совокупность этих средств может рассматриваться как некая программная надстройка над ЭВМ, и опирается, в конечном счете, на архитектуру компьютера и его ассемблер. Хотя теоретически можно писать программы и без этой надстройки, последняя существенно ускоряет разработку программ и является общепринятым слоем ПО на современных компьютерах.

Архитектура современных параллельных компьютеров такова, что зачастую может рассматриваться как некоторое обЪединение обычных последовательных компьютеров, соединенных высокоскоростной сетью.

В качестве общепринятого интерфейса взаимодействия между процессами де-факто стандартом является MPI, реализованный практически для всех кластерных архитектур. По сути MPI является средством для обмена сообщениями, и является низкоуровневым средством интеграции последовательных процессов. Вызовы MPI-библиотеки распологаются в коде последовательной программы и реализуют отдельные события (инструкции) параллельной обработки.

Позволяя себе определенную вольность, можно по уровню программирования соотнести использование MPI в параллельном программировании с инспользованием инструкций ассемблера: вместо послать/принять употреблять слова загрузить/сохранить и т.д.

Являясь низкоуровневым средством, MPI позволяет создавать очень эффективные параллельные программы, но требует весьма существенных усилий от программиста при записи алгоритма в терминах посылки, приема сообщений, синхронизации и распределения работы между отдельными вычислительными узлами кластера.

Т-система (а также некоторые другие аналогичные продукты) ставит целью распространить принципы высокоуровневых средств разработки на параллельные компьютеры. При этом, выражаясь математическим языком, следующая диаграмма должна быть коммутативна:



    Последовательный компьютер  ------->   Языки C, Fortran, gcc, gdb , libc
    с ассемблером

                |                                           |
                |                                           |
                |                                           |
                |                                           |
                V                                           V

    Параллельный компьютер      ------->   Языки TC, TFortran, tcc, tdb, libT
    с библиотекой MPI


Иными словами, делается попытка "поднять" высокоуровневые средства разработки программ до параллельных архитектур.