next up previous contents
Next: Работа с файлами. Up: Введение. Previous: Введение.   Contents

Обозначения.

файл
MPI файл - это упорядоченная последовательность типизированных блоков данных. MPI поддерживает произвольный или последовательный доступ к любому цельному набору этих блоков. Файл открывается коллективно группой процессов. Все коллективные обращения к файлу коллективны на этой группе.

смещение файла
Смещение файла - это абсолютное положение байта, относящегося к началу этого файла. Смещение определяет место, с которого начинается вид. Заметим, что ``смещение файла'' отличается от ``типового смещения''.

е-тип
Е-тип (элементарный тип данных) - это единица доступа к данным и позиционирования. Это может быть любой определенный в MPI или производный тип данных. Производные е-типы могут быть созданы при помощи любой из подпрограмм создания типов данных MPI, обеспечивающих, чтобы получающиеся типовые смещения были неотрицательны и монотонно неубывали. Доступ к данным идет в единицах е-типов, считывая или записывая целый блок данных какого-либо из е-типов. Смещения выражаются как количества е- типов; указатели на файл указывают на начала е-типов. В зависимости от контекста термин ``е-тип'' будет использоваться для обозначения одного из трех аспектов элементарного типа данных: непосредственно типа MPI, блока данных соответствующего типа или размера этого типа.

файловый тип
Файловый тип - это базис для разбиения файла в среде процессов, он определяет шаблон доступа к файлу. Файловый тип - это обычный е-тип или производный тип данных MPI, состоящий из нескольких элементов одного и того же е-типа. Кроме того, размер любой ``дыры'' в файловом типе должен быть кратным размеру этого е-типа.

вид
Вид определяет текущий набор данных, видимый и доступный из открытого файла как упорядоченный набор е-типов. Каждый процесс имеет свой вид файла, определенный тремя параметрами: смещением, е-типом и файловым типом. Шаблон, описанный в файловом типе, повторяется, начиная со смещения, чтобы определить вид. Шаблон повторения такой, какой был бы создан подпрограммой MPI_TYPE_CONTIGUOUS, если бы в нее были переданы файловый тип и сколь угодно большое число. Рис. 13 показывает, как работает это заполнение; заметим, что в данном случае файловый тип должен иметь точные верхнюю и нижнюю границы, чтобы начальные и конечные ``дыры'' были повторены в виде. Виды могут меняться пользователем во время выполнения программы. По умолчанию вид - это линейный поток байтов (смещение равно нулю, е-тип и файловый тип равны MPI_BYTE).

\includegraphics[scale=0.7]{pic/9.1.eps}

Рисунок 9.1: е-типы и файловые типы.

Группа процессов может использовать дополняющие друг друга виды, чтобы достичь глобального распределения данных (см. Рис. 14).

\includegraphics[scale=0.60]{pic/9.2.eps}

Рисунок 9.2: распределение файла между параллельными процессами.

типовое смещение
Типовое смещение (или просто смещение) - это позиция в файле относительно текущего вида, представленная как число е-типов. ``Дыры'' в файловом типе вида пропускаются при подсчете номера этой позиции. Нулевое смещение - это позиция первого видимого е-типа в виде (после пропуска смещения и начальных ``дыр'' в виде). Например, типовое смещение 2 для процесса 1 на рис.14 будет иметь позиция 8-го е-типа в файле после смещения файла. ``Точное смещение'' - это смещение, использующееся как формальный параметр в точных подпрограммах доступа к данным.

размер файла и конец файла
Размер MPI файла измеряется в байтах от начала файла. Только что созданный файл имеет нулевой размер. Использование размера как абсолютного смещения дает позицию байта, следующего сразу за последним байтом файла. Для любого вида конец файла - это смещение первого е-типа, доступного в данном виде, начинающегося после последнего байта в файле.

файловый указатель
Указатель на файл - это постоянное смещение, устанавливаемое MPI. ``Индивидуальные файловые указатели'' - файловые указатели, локальные для каждого процесса, открывающего файл. ``Общие файловые указатели'' - это указатели, которые используются одновременно группой процессов, открывающих файл.

дескриптор файла
Дескриптор файла - это закрытый объект, создаваемый подпрограммой MPI_FILE_OPEN и уничтожаемый MPI_FILE_CLOSE. Все операции над открытым файлом работают с файлом через его дескриптор.



Alex Otwagin 2002-12-10