WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 |   ...   | 63 | 64 || 66 | 67 |   ...   | 82 |

На головной машине кластера всегда имеется компилятор С++, который управляется средствами командной строки. Без такого компилятора не может существовать ни одна система UNIX. Дело в том, что между разными машинами, даже с одним и тем же типом ОС UNIX, не существует совместимости программ на уровне двоичных кодов. Для машин с Linux существует совместимость программ на уровне двоичных кодов при одинаковой версии ядра операционной системы. Таким образом, установка любой программы (за исключением программ, которые выполняются интерпретаторами) в UNIX обычно требует компиляции ее исходного кода.

Задание на компиляцию программы с использованием компилятора С++ Linux представляет собой управляющий файл для программы make. Таким образом, для компиляции программы кроме ее текстов на С++ нужно иметь файл задания для make. Среда MSVC позволяет экспортировать файл проекта в 278 Intelligent Systems формате make. Однако файл, экспортированный из MSVC, мало пригоден для управления компиляцией на Linux, так как требует такой ручной переделки, что проще его написать заново с нуля.

Можно компилировать без задания для программы make, вызывая компилятор С++ непосредственно из командной строки, но в этом случае текст программы должен выглядеть как один файл, а все остальные части текста должны подключаться явно с помощью директив #include. Это очень неудобно по многим причинам. Одна из существенных причин использования формата make состоит в том, он предоставляет возможность ускорить компиляцию программы, состоящей из нескольких файлов. Программа make позволяет использовать объектные файлы и выполняет перекомпиляцию только тех файлов с исходным текстом, которые были изменены. Кроме того, при использовании make шаги сборки программы можно не знать.

Формат файла для make довольно сложен, и построение задания требует значительной работы: нужно помнить, как одни файлы зависят от других, и указать все файлы, которые потребуются при компиляции вашей программы; поэтому часто приходится указывать в управляющем файле для make довольно много данных. Если при компиляции требуется использовать несколько различных инструментов (например, редактор связей кроме компилятора), то нужно предусмотреть управление каждым из них. Существуют программы, позволяющие сгенерировать управляющий файл автоматически. С этой целью удобно использовать программу genmake, которую можно найти в Интернет по следующему адресу:

http://www.robertnz.net/genmake.htm Проект, для которого генерируется управляющий файл для make, должен быть подготовлен. Для этого в каждый h-файл проекта нужно включить специальные директивы в формате комментария. В этих директивах указываются имена cpp-файлов, в которых содержаться определения объектов, декларированных в соответствующем h-файле. Для программы genmake указывается название cppфайла, содержащего функцию main программы. Программа genmake просматривает этот файл для нахождения директив #include для включения h-файлов. Найденные h-файлы просматриваются с целью поиска директив genmake, в которых указаны cpp-файлы, содержащие определения объектов, декларированных в соответствующем h-файле. Таким образом, разыскиваются все требуемые файлы и формируются зависимости между ними. К сожалению, сгенерированный genmake файл требует небольшой ручной доработки.

Проблема русского языка Принципиальное отличие ситуации с русским языком в Linux от других языков связано с тем, что на сегодняшний день существует несколько кодировок для русского языка – Windows 1251, KOI-8r, ISO8859-и др. По умолчанию кодовой страницей русского языка для Linux является KOI-8r, а в Windows кодовая страница русского языка – это Windows 1251. Различие в стандартах кодировки ведет к тому, что тексты программ, подготовленные для компиляции в Windows, будут неправильно выглядеть при просмотре на Linux. Но проблема не только в просмотре текста программы, через консоль очень трудно выполнить переключение раскладки клавиатуры на русский язык при редактировании. Это главная причина, по которой редактирование текстов программ удобнее выполнять на удаленном компьютере пользователя. С точки зрения удобства редактирования текста программы удобнее всего в качестве редактора использовать среду MSVC. Ее редактор особенно незаменим, когда необходимо анализировать структуру вложенности скобок. С другой стороны, для правильной работы с русским языком редактор должен обеспечивать возможность преобразования кодировки Windows 1251 в KOI-8r и наоборот.

С точки зрения возможностей просмотра и редактирования текстов программ довольно удобен текстовый редактор Aditor, который можно найти в Интернет по адресу http://nrd.pnpi.spb.ru/UseSoft/tools/Aditor/ aditor.htm. Основное его достоинство – полная поддержка если не всех, то почти всех кодировок русского алфавита (KOI, Win, DOS, ISO, Mac). “Полная” поддержка означает то, что можно просматривать и редактировать файлы в любой из этих кодировок, при открытии файла его кодировка определяется автоматически и почти всегда безошибочно (а при ошибке можно и поправить), можно переводить файлы из одной кодировки в другую по желанию пользователя, автоматически перекодируется Clipboard и т. д.

Кроме того, в этом редакторе выделяются разными цветами синтаксические конструкции С++.

XII-th International Conference "Knowledge - Dialogue - Solution" Технология работы Основой организации работы с программой для кластера является каталог на компьютере удаленного терминала с текстами программы. Эти тексты отличаются от текстов исходного прототипа для Windows не только параллельностью, но также и тем, что они перекодированы в KOI-8r (с помощью редактора Aditor) и в h-файлы включены директивы genmake. Первым этапом разработки программы для кластерного компьютера является создание и заполнение такого каталога. Затем с помощью программы genmake нужно построить make-файл и исправить его вручную. Далее этот каталог с данными дублируется в каталог на головной машине кластера. Для этого данные из каталога на машине удаленного терминала транспортируются в каталог на головной машине кластере (с помощью программы SecureFX). На этом подготовительная работа для компиляции и запуска программы заканчивается.

Далее каталог на кластере служит зеркалом каталога на компьютере разработчика. Файлы, с которыми идет работа, удобно держать открытыми в программе Aditor. Для компиляции и выполнения программы нужно запустить программу PuTTY и в ней программу Midnight Commander. Если при компиляции возникли ошибки, номера строк программы и диагностику ошибок можно посмотреть под панелями программы mc.

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

Если компиляция прошла успешно, нужно проследить, чтобы двоичный файл программы появился на панели mc и был отмечен звездочкой. Теперь можно запускать этот файл на выполнение. Результаты работы можно посмотреть под панелями mc.

Заключение В работе содержатся рекомендации по созданию комплекса программных средств, обеспечивающих выполнение типовых операций по подготовке к выполнению и запуску программ для кластера, головная машина которого представляет собой UNIX сервер, с помощью удаленного компьютера с Windows.

Предлагаемая конфигурация программных средств не является единственной из возможных. Однако использование предлагаемой технологии позволяет программисту, имеющему навыки работы с инструментами для Windows, использовать эти знания при разработке программ для кластера. Это, конечно, дается ценой отказа от использования некоторых средств, предоставляемых рабочей системой на основе Linux. Основной недостаток предлагаемого подхода состоит в невозможности использования инструментов разработки программ Linux с графическим интерфейсом. Рекомендации для пользователей кластера, работающих на рабочих компьютерах с Linux, приведены в работе [2].

Практическое применение предлагаемой конфигурации для разработки нескольких параллельных программ [3, 4], последовательные прототипы которых были построены в среде MSVC, позволило добиться того, что перенос последовательного алгоритма в Linux не требовал умения работать в Linux и основные трудозатраты состояли в разработке и отладке параллельного алгоритма, а не в овладении комплексом инструментальных средств. Более подробно описываемая технология разработки программ для кластерных компьютеров описана в статье [5].

Библиография 1. Фигурнов В.Э. “IBM PC для пользователя. От начинающего до опытного”, М.: ИНФРА-М, 640 с., 2002.

2. Галактионов В.В., Голоскокова Т.М., Громова Н.И. и др. “Руководство для пользователей LINUX кластера ЛИТ ОИЯИ”, Дубна, 2004.

3. Торопов Н.Р. “Параллельная проверка ДНФ на тавтологию”, Информатика, № 2 (6), с. 35–42, 2005.

4. Торопов Н.Р. “Параллельные логико-комбинаторные вычисления в среде MPI”, Информатика, № 3 (7), с. 82–90, 2005.

5. Черемисинов Д.И. “Работа с кластерным компьютером из Windows”, Информатика, № 3 (7), с. 91–99, 2005.

280 Intelligent Systems Информация об авторах Дмитрий Иванович Черемисинов – Объединенный институт проблем информатики Национальной академии наук Беларуси, ул. Сурганова, 6, Минск, 220012, Беларусь, e-mail: cher@newman.bas-net.by Людмила Дмитриевна Черемисинова – Объединенный институт проблем информатики Национальной академии наук Беларуси, ул. Сурганова, 6, Минск, 220012, Беларусь, e-mail: cld@newman.bas-net.by ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА УДАЛЁННОГО ПАРАЛЛЕЛЬНОГО МОДЕЛИРОВАНИЯ Александр Миков, Елена Замятина, Антон Фирсов Реферат: В докладе представлено описание распределённой системы имитации Triad.Net и инструментальных средств, позволяющих географически удалённым пользователям через Интернет осуществлять совместную работу над имитационными моделями и наблюдать за ходом имитационного эксперимента.

Ключевые слова: Распределённое/параллельное имитационное моделирование, удалённый доступ, портал.

ACM Classification Keywords: I.6 Simulation And Modeling: I.6.7 Simulation Support Systems – Environments;

I.6.8 Types of Simulation – Distributed Введение Имитационное моделирование и в настоящее время остаётся общепризнанным средством для исследований в разных областях знаний. Поскольку сложность решаемых с помощью имитационного моделирования задач растёт, возрастает и необходимость в создании распределенных и параллельных систем имитации, которые используют вычислительные ресурсы нескольких процессоров или нескольких компьютеров [1,2,3].

По замечанию известных исследователей в области распределённого имитационного моделирования R.Fujimoto и K.Perumalla [4], существуют три важных фактора, которые способствуют продвижению параллельных информационных технологий в области имитационного моделирования. К ним можно отнести:

• наличие графического интерфейса;

• наличия удалённых средств доступа к параллельным вычислительным ресурсам;

• наличие программных средств, которые дают возможность пользователям, находящимся на удалённом расстоянии друг от друга через Internet вести совместную работу с одной и той же имитационной моделью.

В докладе представлены языковые и программные средства имитационной системы Triad.Net, позволяющие исследователям удаленно и совместно с другими исследователями через Internet взаимодействовать с имитационной моделью, а также, и наблюдать за поведением модели во время имитационного эксперимента.

XII-th International Conference "Knowledge - Dialogue - Solution" Описание имитационной модели в Triad.Net Система автоматизированного проектирования Triad была разработана на кафедре математического обеспечения вычислительных систем Пермского государственного университета [5,6,7] и предназначалась для проектирования встроенных вычислительных систем.

Описание имитационной модели в Triad состоит из трех слоёв: слоя структур (STR), слоя рутин (ROUT) и слоя сообщений (MES). Таким образом, модель в системе Triad можно определить как M={STR,ROUT,MES}.

Слой структур представляет собой совокупность объектов, взаимодействующих друг с другом посредством посылки сообщений. Каждый объект имеет полюса (входные P и выходные P ), которые in out служат соответственно для приёма и передачи сообщений. Слой структур можно представить графом. В качестве вершин графа следует рассматривать отдельные объекты. Дуги графа определяют связи между объектами.

Объекты действуют по определённому алгоритму поведения, который описывают с помощью рутины (rout). Рутина представляет собой последовательность событий e, планирующих друг друга (eE, i=1n, i i E-множество событий, множество событий рутины является частично упорядоченным в модельном времени). Выполнение события сопровождается изменением состояния q объекта. Состояние объекта k определяется значениями переменных var рутины (var Var, j=1m, Var – множество переменных j j рутины). Таким образом, система имитации является событийно-ориентированной. Рутина так же, как и объект, имеет входные (Pr и выходные Pr ) полюса. Входные полюса служат соответственно для in out приёма сообщений, выходные полюса – для их передачи. В множестве событий рутины выделено входное событие e. Все входные полюса рутины обрабатываются входным событием. Обработка in выходных полюсов осуществляется остальными событиями рутины. Для передачи сообщения служит специальный оператор out (out through <имя полюса>). Совокупность рутин определяет слой рутин ROUT. Слой сообщений (MES) предназначен для описания сообщений сложной структуры.

Система Triad реализована таким образом, что пользователь может описать только один слой. Так, если возникает необходимость в исследовании структурных особенностей модели, то можно описать в модели только слой структур.

Система имитации Triad.Net является развитием системы Triad. Она представляют собой параллельную (распределённую) версию. В системе имитации Triad.Net реализованы распределённые алгоритмы синхронизации функционирующих во времени объектов (консервативный и оптимистический, математическая модель алгоритмов описана, в частности, в [13]). Кроме того, для системы Triad.Net характерно следующее [8]:

1. Входной язык описания моделей содержит переменные типа «модель». Над моделями определены операции. Операции определены как для моделей в целом, так и для каждого слоя.

Pages:     | 1 |   ...   | 63 | 64 || 66 | 67 |   ...   | 82 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.