Некоторые потенциально полезные советы (значения ключей для
info) перечислены ниже. Следующие имена ключей
зарезервированы. Реализация не обязана интерпретировать данные
ключи, но если она их интерпретирует, то она должна обеспечивать
функциональность, описанную ниже. (Более подробно об ``info''
см. в разделе The Info Object).
Эти советы в основном влияют на шаблоны доступа и расположение
данных на параллельных устройствах ввода-вывода. Для каждого
представленного имени совета мы опишем его цель и тип данных
совета. Аннотация ``[SAME]'' обозначает, что значения совета,
предоставляемые всеми участвующими процессами, должны быть
одинаковыми; в противном случае программа ошибочна. Кроме
того, некоторые советы зависят от контекста и используются
реализацией только в специфические моменты (например, file_perm
используется только в течение создания файла).
Данный совет определяет способ, которым будет осуществляться
доступ к файлу, до тех пор пока файл не будет закрыт или
значение ключа access_style не изменится. Значение совета -
список, разделенный запятыми, из следующих строк: read_once,
write_once, read_mostly, write_mostly, sequential,
reverse_sequential, и random.
{ collective_buffering} (логический) {SAME}:
Данный совет определяет, может ли приложение извлечь пользу
из коллективной буферизации. Коллективная буферизация -
это оптимизация, производимая над коллективным доступом.
Обращения к файлу выполняются через некоторое количество
целевых узлов с выгодой для всех процессов. Данные целевые
узлы объединяют маленькие запросы в большие обращения к
диску. Допустимые значения для данного ключа: true и false.
Параметры коллективной буферизации управляются
посредством дополнительных советов: cb_block_size,
cb_buffer_size и cb_nodes.
{ cb_block_size} (целое) {SAME}:
Данный совет определяет размер блока для использования при
коллективной буферизации доступа к файлу. Целевые узлы
осуществляют доступ к данным кусками этого размера. Эти
куски распределяются среди целевых узлов в круговом
(циклическом порядке).
{ cb_buffer_size} (целое) {SAME}:
Данный совет определяет общий размер буферного
пространства, которое может быть использовано для
коллективной буферизации на каждом целевом узле, обычно
кратный cb_block_size.
{ cb_nodes} (целое) {SAME}:
Данный совет определяет количество целевых узлов,
используемых при коллективной буферизации.
Данный совет указывает на то, что файл состоит из
мультимедийного массива, доступ к которому часто
производится через подмассивы. Значение данного совета - это
разделенный запятыми список размерностей массива, начиная с
самой значительной (для массива, хранимого по строкам, как в Си,
самой значительной будет первая размерность; для массива,
хранимого по столбцам, как в ФОРТРАН, самой значительной
будет последняя размерность, и размерности массива должны
идти в обратном порядке).
Данный совет определяет размерности подмассивов. Это
разделенный запятыми список размерностей массива, начиная с
самого значительного.
{ filename} (строка):
Данный совет определяет имя файла, использованное при его
открытии. Если реализация способна возвращать имя открытого
файла, оно будет возвращено при использовании данного ключа
подпрограммой MPI_FILE_GET_INFO. Данный ключ
игнорируется при передаче в MPI_FILE_OPEN,
MPI_FILE_SET_VIEW, MPI_FILE_SET_INFO и
MPI_FILE_DELETE.
{ file_perm} (строка) {SAME}:
Данный совет определяет права доступа к файлам для
использования при создании файла. Устанавливать данный совет
полезно только при передаче в MPI_FILE_OPEN с amode,
который включает MPI_MODE_CREATE. Множество
допустимых значений для данного ключа зависит от реализации.
Данный совет определяет
список устройств ввода-вывода,
которые должны быть использованы для хранения файла.
Данный совет наиболее уместен при создании файла.
{ nb_proc} (целое) {SAME}:
Данный совет определяет количество параллельных процессов,
которые будут назначены для запуска программ,
осуществляющих доступ к файлу.
{ num_io_nodes} (целое) {SAME}:
Данный совет определяет количество устройств ввода-вывода в
системе. Данный совет наиболее уместен при создании файла.
{ striping_factor} (целое) {SAME}:
Данный совет определяет количество устройств ввода-вывода, из
которых должен быть собран файл и уместен только при его
создании.
{ striping_unit} (целое) {SAME}:
Данный совет определяет предполагаемый размер единиц сборки
для данного файла. Единица сборки - это некоторое количество
подряд идущих данных, получаемых из одного устройства ввода-
вывода, до того как перейти к следующему устройству, когда
файл собирается из нескольких устройств. Выражается в байтах.
Данный совет уместен только при создании файла.