смещение файла
Смещение файла - это абсолютное положение байта, относящегося к
началу этого файла. Смещение определяет место, с которого
начинается вид. Заметим, что ``смещение файла'' отличается от
``типового смещения''.
е-тип
Е-тип (элементарный тип данных) - это единица доступа к данным и
позиционирования. Это может быть любой определенный в MPI или
производный тип данных. Производные е-типы могут быть созданы
при помощи любой из подпрограмм создания типов данных MPI,
обеспечивающих, чтобы получающиеся типовые смещения были
неотрицательны и монотонно неубывали. Доступ к данным идет в
единицах е-типов, считывая или записывая целый блок данных
какого-либо из е-типов. Смещения выражаются как количества е-
типов; указатели на файл указывают на начала е-типов. В
зависимости от контекста термин ``е-тип'' будет использоваться для
обозначения одного из трех аспектов элементарного типа данных:
непосредственно типа MPI, блока данных соответствующего типа
или размера этого типа.
файловый тип
Файловый тип - это базис для разбиения файла в среде процессов, он
определяет шаблон доступа к файлу. Файловый тип - это обычный
е-тип или производный тип данных MPI, состоящий из нескольких
элементов одного и того же е-типа. Кроме того, размер любой ``дыры''
в файловом типе должен быть кратным размеру этого е-типа.
вид
Вид определяет текущий набор данных, видимый и доступный из
открытого файла как упорядоченный набор е-типов. Каждый
процесс имеет свой вид файла, определенный тремя
параметрами: смещением, е-типом и файловым типом. Шаблон,
описанный в файловом типе, повторяется, начиная со смещения,
чтобы определить вид. Шаблон повторения такой, какой был бы создан
подпрограммой MPI_TYPE_CONTIGUOUS, если бы в нее были переданы
файловый тип и сколь угодно большое число. Рис. 13 показывает,
как работает это заполнение; заметим, что в данном
случае файловый тип должен иметь точные верхнюю и нижнюю
границы, чтобы начальные и конечные ``дыры'' были повторены в
виде. Виды могут меняться пользователем во время выполнения
программы. По умолчанию вид - это линейный поток байтов
(смещение равно нулю, е-тип и файловый тип равны MPI_BYTE).
Группа процессов может использовать дополняющие друг друга виды, чтобы достичь глобального распределения данных (см. Рис. 14).
типовое смещение
Типовое смещение (или просто смещение) - это позиция в файле
относительно текущего вида, представленная как число е-типов.
``Дыры'' в файловом типе вида пропускаются при подсчете номера этой позиции.
Нулевое смещение - это позиция первого видимого е-типа
в виде (после пропуска смещения и начальных ``дыр'' в виде).
Например, типовое смещение 2 для процесса 1 на рис.14 будет иметь позиция
8-го е-типа в файле после смещения файла. ``Точное смещение'' - это
смещение, использующееся как формальный параметр в точных
подпрограммах доступа к данным.
размер файла и конец файла
Размер MPI файла измеряется в байтах от начала файла. Только что
созданный файл имеет нулевой размер. Использование размера как
абсолютного смещения дает позицию байта, следующего сразу за
последним байтом файла. Для любого вида конец файла - это смещение
первого е-типа, доступного в данном виде, начинающегося после
последнего байта в файле.
файловый указатель
Указатель на файл - это постоянное смещение, устанавливаемое
MPI. ``Индивидуальные файловые указатели'' - файловые указатели,
локальные для каждого процесса, открывающего файл. ``Общие
файловые указатели'' - это указатели, которые используются
одновременно группой процессов, открывающих файл.
дескриптор файла
Дескриптор файла - это закрытый объект, создаваемый подпрограммой
MPI_FILE_OPEN и уничтожаемый MPI_FILE_CLOSE. Все операции
над открытым файлом работают с файлом через его дескриптор.