- •Введение
- •1 Общая информация о mpj Экспресс
- •1.1 История создания mpj Экспресс
- •1.2 Представление mpj Экспресс
- •2. Коммуникации разделяемой памяти в mpj Экспресс
- •2.1 Связанные работы
- •2.2 Общие устройства памяти связи для mpj Экспресс
- •2.2.1 Потоки основного устройства mpj Экспресс
- •2.2.2 Устройство на базе SysV ipc
- •3 Установка и настройка mpj экспресс
- •3.1 Конфигурации
- •3.1.1 Многоядерная конфигурация
- •3.1.2 Конфигурации кластера
- •3.2 Настройка mpj Экспресс
- •3.3 Отладка mpj Экспресс
- •3.4 Проблемы которые могут возникнуть при работе с mpj Экспресс
- •4 Примеры программ с использованием mpj экспресс
- •Список использованой литературы
- •Приложение а
3.3 Отладка mpj Экспресс
Можно отлаживать MPJ Экспресс на трех уровнях:
1. Mpjrun скрипта: этот скрипт позволяет самонастройки программы MPJ Экспресс в кластере многоядерной конфигурации.
2. Библиотека ядра: внутреннее программное обеспечение MPJ Экспресс
3. MPJ Экспресс демоны: во время работы конфигурации кластера, демоны выполняются на вычислительных узлах и отвечают за запуск и остановка MPJ Экспресс процессов при контакте их со скриптом mpjrun.
3.1 mpjrun скрипт
Для включения отладки для сценария mpjrun, необходимо выполнить следующие действия:
1. Редактировать %MPJ_HOME%/src/runtime/starter/MPJRun.java и изменить значение static final boolean DEBUG на true
2. Перекомпилировать код: cd %MPJ_HOME% ; ant
3.Mpjrun сценарий имеет соответствующий файл журнала %MPJ_HOME%/logs/mpjrun.log
3.2 Основная библиотека
Чтобы включить отладку для основной библиотеки, необходимо выполнить следующие действия:
1 Редактировать %MPJ_HOME%/src/mpi/MPI.java и измените значение static final boolean DEBUG на true
2 Перекомпилируйте код: cd %MPJ_HOME% ; ant
3 Если общее количество MPJ Экспресс процессов равно двум, то соответствующие файлы журнала будут %MPJ_HOME%/logs/mpj0.log и %MPJ_HOME%/logs/mpj1.log для процессов 0 и 1 соответственно.
3.3 MPJ Экспресс демоны
Демоны MPJ Экспресс работающие на вычислительных узлах могут быть отлажены в два этапа, изложенных ниже:
3.3.1 Шаг первый: Изменение файла wrapper.conf
1. Редактировать %MPJ_HOME%/conf/wrapper.conf файл
2. Измените значение wrapper.logfile.loglevel от "NONE" в "DEBUG".
3. Теперь выход mpjboot, mpjhalt и другие мероприятия демона можно увидеть в файле
$MPJ_HOME/logs/wrapper.log. Это очень полезно для диагностики и фиксации ошибки демона.
3.3.2 Шаг второй: Изменение файла MPJDaemon.java
1. Редактировать %MPJ_HOME%/src/runtime/daemon/MPJDaemon.java файл.
2. Изменить значение static final boolean DEBUG флаг на true.
3 Перекомпилировать код: cd %MPJ_HOME% ; ant
4. Файлы авторизации теперь можно увидеть %MPJ_HOME%/logs/daemon-<machine_name>.log файле журнала.
3.4 Проблемы которые могут возникнуть при работе с mpj Экспресс
Существуют определенные проблемы и ограничения для программного обеспечения MPJ Экспресс :
1. Для пользоватлей Windows Vista и 7 installmpjd-windows.bat сценарий может не работать. В таком случае, необходимо запустить с "Запуск от имени администратора". Если проблема осталась, тогда необходимо выполнить скрипт mpjdaemon.bat напрямую или с выключеным брандмауэром.
2. Существует известная проблема WIndows и Solaris, что приводит к ависанию MPJ процесса. Обычно это наблюдается, тогда MPJ программы будут зависать, не ывдав результата и не выдавая никаких сообщений об ошибках.
3. Начальная загрузка процесса MPJ Экспресс зачастую занимает очень много времени.
Например,:
user@machine:~/mpj-user> mpjrun.sh -np 6 -jar $MPJ_HOME/lib/test.jar
16:15:43.400 EVENT Starting Jetty/4.2.23
16:15:43.415 EVENT Started HttpContext[/]
16:15:43.419 EVENT Started SocketListener on 0.0.0.0:15000
16:15:43.419 EVENT Started org.mortbay.http.HttpServer@23ac23ac
16:15:43.420 EVENT Starting Jetty/4.2.23
16:15:43.420 EVENT Started HttpContext[/]
16:15:43.421 EVENT Started SocketListener on 0.0.0.0:15001
16:15:43.421 EVENT Started org.mortbay.http.HttpServer@50265026
[ pause for a minute or two ]
Starting process <0> on Starting process <1> on
[ pause for a minute or two ]
Starting process <2> on Starting process <3> on
[ pause for a minute or two ]
Starting process <4> on Starting process <5> on
[ job starts ]
Эта проблема связанна с разрешением имен.
4. Операция объединения реализуется с ограниченной функциональностью.
5. Любое сообщение, отправленное с MPI.PACK можно получить только с помощью MPI.PACK как типа данных. Позже, MPI.Unpack (..) может быть использован, чтобы распаковывать различные типы данных.
6. Использование буферного режима отправки с MPI.PACK как типа данных на самом деле не использует спецификацию буфера MPI.Buffer_attach (..) метод.
7. MPJ приложения не должны выводить более 500 символов в одной строке. [1]