The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Номер версии Up: Управление исполнительной средой MPI Previous: Таймеры и синхронизация.   Contents

Подготовка к запуску параллельных программ

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

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

Синтаксис функции MPI_INIT представлен ниже.

MPI_INIT()

int MPI_Init(int *argc, char ***argv) 

MPI_INIT(IERROR)
NTEGER IERROR 

void Init(int& argc, char**& argv)
void Init()

Эта процедура должна быть вызвана прежде, чем будет вызвана какая - либо другая MPI подпрограмма (кроме MPI_INITIALIZED). Она должна быть вызвана всего один раз; последующие вызовы неверны (см. MPI_INITIALIZED). Все MPI программы должны содержать вызов MPI_INIT. Версия для ANSI Си принимает argc и argv, которые являются аргументами к main:

int main(argc, argv) 
int argc; 
char **argv; 
{ 
    MPI_Init(&argc, &argv); 
 
    /* анализ аргументов */ 
    /* головная программа */ 
 
    MPI_Finalize();     /* смотри ниже */ 
}

Версия для языка ФОРТРАН содержит только IERROR.

Реализация MPI не требует, чтобы аргументы в вызове для Си были аргументами main.

Объяснение: MPI_INIT может использовать командную строку аргументов для инициализации среды MPI. Они передаются по ссылке, чтобы позволить реализации MPI обеспечить их в среде, где аргументы командной строки не предусмотрены для main.[]

Синтаксис функции MPI_FINALIZE представлен ниже.

MPI_FINALIZE()

int MPI_Finalize(void) 

MPI_FINALIZE(IERROR)
INTEGER IERROR

void Finalize()

Эта процедура очищает все состояния MPI. Никакая другая процедура MPI (даже MPI_INIT) не может быть вызвана после выполнения этой процедуры. Пользователь обязан гарантировать, что все незаконченные обмены будут завершены прежде, чем будет вызвана MPI_FINALIZE.

Синтаксис функции MPI_INITIALIZED представлен ниже.

MPI_INITIALIZED(flag)

OUT flag параметр flag принимает значение true, если MPI_INIT была вызвана и false в противном случае.

int MPI_Initialized(int *flag)

MPI_INITIALIZED(FLAG, IERROR)
LOGICAL FLAG
INTEGER IERROR

bool MPI::Is_initialized()

Процедура MPI_INITIALIZED может использоваться для определения того, был ли вызван
MPI_INIT. Это единственная процедура, которая может быть вызвана перед MPI_INIT.

Синтаксис функции MPI_ABORT представлен ниже.

MPI_ABORT(comm, errorcode)

IN comm коммуникатор прерываемой задачи
IN errorcode код ошибки для возврата в среду исполнения

int MPI_Abort(MPI_Comm comm, int errorcode)

MPI_ABORT(COMM, ERRORCODE, IERROR)
INTEGER COMM, ERRORCODE, IERROR

bool MPI::Is_finalized()

Процедура MPI_ABORT пробует наилучшим способом прервать выполнение всех задач в группе коммуникатора comm. Эта процедура не требует, чтобы исполнительная среда производила какие-либо действия с кодом ошибки. Однако, среда Unix или POSIX должна обрабатывать его как return errorcode из главной программы или abort (errorcode).

Реализация MPI должна определить поведение MPI_ABORT по крайней мере для коммуникатора MPI_COMM_WORLD. Реализация MPI может игнорировать аргумент comm и действовать, как если бы коммуникатором был MPI_COMM_WORLD.

Объяснение: Коммуникационный аргумент предусмотрен для будущих расщирений MPI в отношении среды исполнения, например, для динамического управления процессами. Это, в частности, позволяет (но не требует) реализации MPI прекратить действие подмножества
MPI_COMM_WORLD.[]


next up previous contents
Next: Номер версии Up: Управление исполнительной средой MPI Previous: Таймеры и синхронизация.   Contents
Alex Otwagin 2002-12-10



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру