| OpenTS |
|
|
Руководство оператора
|
Table of Contents Т-система — среда программирования с поддержкой автоматического динамического распараллеливания программ. Для реализации концепции автоматического динамического распараллеливания программ в Т-системе предложена новая модель организации вычислительного процесса, основанная на следующих базовых принципах: В качестве основной парадигмы рассматривается функциональное программирование. Программа представляет собой набор чистых функций. Каждая функция может иметь несколько аргументов и несколько результатов. В то же время тела функций могут быть описаны в императивном стиле (на языках типа FORTRAN, C и т. п.). Важно только, чтобы:
Вызов функции G, производимый в процессе вычисления функции F, выполняется нетрадиционным способом (так называемый сетевой вызов функции). При этом порождается новый процесс с несколькими входами (в соответствии с числом аргументов функции G) и несколькими выходами (в соответствии с числом результатов функции G). Выходы нового процесса связываются с соответствующими переменными процесса F отношением поставщик-потребитель и, тем самым, переменные-потребители принимают неготовые (не вычисленные) значения. Порожденный процесс G должен вычислить функцию G и заменить неготовые значения у всех своих потребителей на соответствующие результаты функции G.
Для использования ПО Т-система подходит любая программно-аппаратна платформа, удовлетворяющая следующим требованиям:
Запуск Т-приложения осуществляется с помощью команды mpirun (в предположении, что MPI установлен и корректно функционирует на используемом кластере или мета-кластере). Для LAM MPI командная строка обычно имеет вид: mpirun N <executable> <options> Для Scali MPI командная строка обычно имеет вид: mpirun -np <число CPU> -init_comm_world -imeediate_handling auto <executable> <options> Для системы очередей на комплексе МВС-1000М командная строка обычно имеет вид: mpirun -np <число CPU> <executable> <options> Для других реализаций MPI формат командной строки может быть иным. Для расширения функциональных возможностей, удобства проведения контрольных замеров и отладки программ, во время запуска можно указать дополнительные опции, влияющие на функционирование ядра Т-системы. Опции (ключи командной строки), воспринимаемые ядром Т-системы, начинаются со строки '-tct' и должны следовать непосредственно за именем исполняемого файла задачи. В настоящий момент подерживаются следующие опции: -tct 'DP(<regular-expression>)' — указывает регулярное выражение-фильтр для режима отладки (опция компилятора -dbg); -tct callGraph — заказ на визуализацию графа вызовов Т-функций; -tct showMsgs — этот ключ включает вывод на экран информации о всех персылаемых по сети сообщениях; -tct showFeatures — заказывает вывод на экран списка подключенных расширений микроядра; -tct enableAsync — разрешает асинхронный режим работы суперпамяти; -tct disableAsync — запрещает асинхронный режим работы суперпамяти; -tct enableSMP — разрешает использование “жесткого” режима SMP; -tct ncpu=<N> — заказывает N системных потоков при “жестком” режиме SMP. Системные сообщения выделяются с помощью цвета для того, чтобы их визуально было проще отличить от вывода пользовательской программы. Цветовая схема выделения системных сообщений используется в том случае, если устройство отображения – консоль оператора – поддерживает такую возможность, либо если установлена переменная окружения TTY_HAS_COLORS. Ярко-красным цветом выделяются сообщения о фатальных ошибках, таких как сбой подсистемы коммуникаций, исчерпание лимита памяти или суперпамяти, перекрытие допустимых границ стека суперпотока и т. д. Остальные системные сообщения имеют цвет, зависящий от номера вычислительного узла, с которого поступает сообщение. Конкретная цветовая схема зависит от устройства отображения. Обычно нулевой узел использует зеленый цвет, первый – желтый, второй – синий, третий – сиреневый и т д. "Regexp `%s' compilation failed!" - указанное регулярное выражение-фильтр для визуализации системных событий (режим отладки) не удалось откомпилировать. ”Unknown TCT option %s !" - неизвестная опция командной строки (следует за ключом -tct), определяющей начальный Т-контекст времени исполнения. "Internal feature failed" - одно из встроенных расширений Т-микроядра не удалось проинициализировать. "Stack overflow" - недостаточно памяти для требуемого программой количества суперпотоков. “Threads initialization failed" - ошибка на стадии инициализации подсистемы поддержки суперпотоков. "Out of memory" - недостаточно памяти для программы. “MPI_Error[%d != %d]: %.*s" - сбой подсистемы обмены сообщений MPI. "No free MPI_Request (%d tries)" - недопустимая задержка в подсистеме коммуникаций. ”Out of supermemory" - исчерпан лимит ячеек суперпамяти. Необходимо увеличить размер суперматрицы. “Deadlock detected" - внутренняя ошибка синхронизации. "Drop or freeze on unitialized T-value!" - Т-функция не проинициализировала один из своих выходных аргументов.
Эта группа сообщений сигнализирует либо об исключительно важных для оператора событиях, либо выводятся в режиме отладки (опция компилятора -dbg) “MemoryLeak: ...” - в программе осталась неосвобожденная память в момент завершения. “main result is ready and %d TFuns are still working. Memory leaks are possible” - в момент завершения головной функции tfun main остались работающие Т-функции. “Leaked cell %x,%lld with data %s (%d bytes)” - в программе осталась неосвобожденная суперпамять в момент завершения. “local memo works” - началось повторное использование результатов мемо-функций на одном узле. “global memo works” - началось повторное использование результатов мемо-функций, вычисляющихся на других узлах.
|