Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство программиста_администратора.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
552 Кб
Скачать
☆

2.5.1.4. Интеграция с Visual Studio 2005

Суть интеграции OpenTS с Visual Studio 2005 состоит в следующем: в диалоговом окне при добавлении нового проекта появляется новый элемент "OpenTS console application", позволяющий создать проект консольного приложения на языке Т++.

Также, в диалоговом окне добавления в проект нового файла появляется элемент "T++ file". Это даёт возможность добавления в текущий проект новых исходных файлов на языке Т++.

В процессе сборки Т-приложения в среде Visual Studio 2005 к каждому исходному файлу на языке Т++ применяется особое правило сборки ("%ProgramFiles%\Microsoft Visual Studio 8\VC\ VCProject Defaults\ opents.rules"), которое использует командный файл "t++.bat". Объектные модули, полученные в результате применения этого правила, затем компонуются с некоторыми другими статическими библиотеками, в результате чего получается исполняемый файл Т-приложения.

2.5.1.5. Сборка t-приложений

В меню "Старт"-"Все программы"-"OpenTS" есть несколько ссылок для открытия терминала OpenTS. Используя этот терминал, можно создавать Т-приложения с помощью командной строки. Командный файл t++.bat используется для разработки Т-приложений в режиме командной строки. Его синтаксис: t++ [опции] файл1 ... файлN. Список его возможных опций:

  • /auto-c-call - позволяет Т-приложению вызывать Си-версии Т-функций. В некоторых случаях это может улучшить производительность приложения;

  • /c - режим компиляции исходных файлов без компоновки;

  • /dbg - отладочная сборка. Она позволит отладчику получить информацию о символах программы в случае ошибки при работе Т-приложения;

  • /do - позволяет указать расположение объектных модулей;

  • /not - способ сборки приложения, при котором все ключевые слова языка Т++ игнорируются;

  • /o - указывает имя выходного файла;

  • /p - позволяет указать дополнительные опции компилятору Cи/Cи++;

  • /v - печать команд перед их вызовом;

Т-приложения могут быть запущены тремя способами:

  1. В монопроцессорном режиме:

2. Локально в параллельном режиме, используя mpiexec:

3. На кластере, используя приложение Cluster Job Submission and Monitoring Console, которое поставляется вместе с Compute Cluster Pack:

2.6. Особенности организации параллельных вычислений при помощи т- системы

Практика показала, что программисты достаточно быстро усваивают базовые принципы программирования на языке T++, а поэтапный переход от последовательного исполнения к реальному параллельному счету упрощает выявление некорректностей кода, связанных, обычно, со слишком вольным использованием расширений функционального стиля. При использовании Т-системы, разумеется, надо помнить об особенностях функционирования Т-системы и Т++-программ. Например, следует помнить, что в результате вызова Т-функции может происходить пересылка данных из одного узла кластера в другой.

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

В первую очередь при реализации программ для Т-системы программист обязан адекватно изложить алгоритм в функциональном стиле— описать программу в виде набора «чистых» Т- функций. Кроме этого, он должен стремиться выбрать оптимальный размер гранулы параллелизма,— то есть оптимально подобрать среднюю вычислительную сложность Т- функций:

  • слишком малая вычислительная сложность определенных программистом Т- функций может привести к слишком большим накладным расходам. Например, это может привести к тому, что потраченное время на передачи Т-функций (и данных для них) в другие узлы кластера окажется большим, чем время счета этой функций;

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

Фрагменты должны быть: - достаточно крупными, чтобы их вычислительная сложность превышала бы накладные расходы на организацию их выполнения; достаточно мелкими, чтобы в процессе выполнения можно было бы ожидать возникновения такого количества таких фрагментов, которое будет достаточным для загрузки всех узлов кластера.