Каждый процесс "видит" файл в соответствии с тем представлением данных, которое используется на той платформе, на которой он выполняется. Преобразование форматов хранения данных не производится.
Режим |
Описание |
MPI_MODE_RDONLY |
Открыть только для чтения |
MPI_MODE_RDWR |
Открыть для чтения и записи |
MPI_MODE_WRONLY |
Открыть только для записи |
MPI_MODE_CREATE |
Создать файл, если не существует |
MPI_MODE_EXCL |
Вернуть сообщение об ошибке, если создаваемый файл уже существует |
MPI_MODE_DELETE_ON_CLOSE |
Удалить файл после закрытия |
MPI_MODE_UNIQUE_OPEN |
Открыть файл только один раз |
MPI_MODE_SEQUENTIAL |
Открыть файл только для последовательного доступа |
MPI_MODE_APPEND |
Установить указатель в конец файла |
Информационный параметр используется для передачи дополнительной информации, относящейся к режимам ввода/вывода. Подробное описание зарезервированных значений можно найти в спецификации MPI-2. Ниже перечислены подпрограммы, с помощью которых создается информационный параметр, и приводится пример использования подпрограмм ввода/вывода.
Подпрограмма MPI_Info_create создает информационный параметр info, который является выходным:
int MPI_Info_create(MPI_Info *info)
В этот информационный параметр с помощью подпрограммы MPI_Info_set можно добавить специальную пару входных параметров (ключ, значение):
int MPI_Info_set(MPI_Info info, char *key, char *value)
Подпрограмма MPI_Info_get_nkeys возвращает количество подобного рода ключей, добавленных ранее в информационный параметр:
int MPI_Info_get_nkeys(MPI_Info info, int *nkeys)
Входным параметром является информационный параметр info, а выходным nkeys — количество определенных ключей.
Получить значение n-го по счету, ключа в информационном параметре info можно с помощью подпрограммы MPI_Info_get_nthkey, которая возвращает значение ключаkey:
int MPI_Info_get_nthkey(MPI_Info info,
intn, char *key)
Длина значения, соответствующего ключуkey, определяется с помощью подпрограммы MPI_Info_get_valuelen:
int MPI_Info_get_valuelen(MPI_Info info,
char *key, int *valuelen, int *flag)
Ее входные параметры:
· info — информационный параметр;
· key — ключ;
Возвращаются:
· valueien — длина аргумента value;
· flag — флаг, значение которого равно "истина", если ключ определен.
Извлечь значение (value), связанное с ключом, можно с помощью подпрограммы MPI_Info_get:
int MPI_Info_get(MPI_Info info, char *key,
int valuelen, char *value, int *flag)
Входные параметры:
· info — информационный параметр;
· key — ключ;
· valuelen — длина аргументаvalue.
Если ключ не определен, параметру flag присваивается значение false.
Пара (ключ, значение) удаляется из информационного параметра подпрограммой MPI_Info_delete:
int MPI_Info_delete(MPI_Info info, char *key)
Ее входными параметрами являются:
· info — информационный параметр;
· key — ключ (строковое значение).
Подпрограмма MPI_Info_free уничтожает информационный параметр:
int MPI_Info_free(MPI_Info *info)
Чтение из файла данных без блокировки процесса с использованием индивидуального файлового указателя выполняется с помощью подпрограммы MPI_File_iread:
int MPI_File_iread(MPI_File fh, void *buf, int count,
MPI_Datatype datatype, MPIO_Request *request)
Ее входными параметрами являются:
· fh — файловый дескриптор;
· count — количество элементов в буфере;
· datatype — тип каждого элемента в буфере.
Выходными параметрами являются:
· buf — стартовый адрес буфера;
· request — идентификатор операции.
Подпрограммой MPI_File_iwrite выполняется запись без блокирования:
int MPI_File_iwrite(MPI_File fh, void *buf, int count,
MPI_Datatype datatype, MPIO_Request *request)
Ее параметры:
· fh — файловый дескриптор;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.