File: MPI_File_set_view.3.rst

package info (click to toggle)
openmpi 5.0.8-10
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 201,692 kB
  • sloc: ansic: 613,078; makefile: 42,351; sh: 11,194; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,179; python: 1,859; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (167 lines) | stat: -rw-r--r-- 5,264 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
.. _mpi_file_set_view:


MPI_File_set_view
=================

.. include_body

:ref:`MPI_File_set_view` |mdash| Changes process's view of data in file
(collective).


SYNTAX
------



C Syntax
^^^^^^^^

.. code-block:: c

   #include <mpi.h>

   int MPI_File_set_view(MPI_File fh, MPI_Offset disp,
   	MPI_Datatype etype, MPI_Datatype filetype,
   	const char *datarep, MPI_Info info)


Fortran Syntax
^^^^^^^^^^^^^^

.. code-block:: fortran

   USE MPI
   ! or the older form: INCLUDE 'mpif.h'
   MPI_FILE_SET_VIEW(FH, DISP, ETYPE,
   	FILETYPE, DATAREP, INFO, IERROR)
   	INTEGER	FH, ETYPE, FILETYPE, INFO, IERROR
   	CHARACTER*(*)	DATAREP
   	INTEGER(KIND=MPI_OFFSET_KIND)	DISP


Fortran 2008 Syntax
^^^^^^^^^^^^^^^^^^^

.. code-block:: fortran

   USE mpi_f08
   MPI_File_set_view(fh, disp, etype, filetype, datarep, info, ierror)
   	TYPE(MPI_File), INTENT(IN) :: fh
   	INTEGER(KIND=MPI_OFFSET_KIND), INTENT(IN) :: disp
   	TYPE(MPI_Datatype), INTENT(IN) :: etype, filetype
   	CHARACTER(LEN=*), INTENT(IN) :: datarep
   	TYPE(MPI_Info), INTENT(IN) :: info
   	INTEGER, OPTIONAL, INTENT(OUT) :: ierror


INPUT/OUTPUT PARAMETER
----------------------
* ``fh``: File handle (handle).

INPUT PARAMETERS
----------------
* ``disp``: Displacement (integer).
* ``etype``: Elementary data type (handle).
* ``filetype``: File type (handle). See Restrictions, below.
* ``datarep``: Data representation (string).
* ``info``: Info object (handle).

OUTPUT PARAMETER
----------------
* ``ierror``: Fortran only: Error status (integer).

DESCRIPTION
-----------

The :ref:`MPI_File_set_view` routine changes the process's view of the data in
the file |mdash| the beginning of the data accessible in the file through
that view is set to *disp;* the type of data is set to *etype;* and the
distribution of data to processes is set to *filetype.* In addition,
:ref:`MPI_File_set_view` resets the independent file pointers and the shared
file pointer to zero. :ref:`MPI_File_set_view` is collective across the *fh*;
all processes in the group must pass identical values for *datarep* and
provide an *etype* with an identical extent. The values for *disp*,
*filetype*, and *info* may vary. It is erroneous to use the shared file
pointer data-access routines unless identical values for *disp* and
*filetype* are also given. The data types passed in *etype* and
*filetype* must be committed.

The *disp* displacement argument specifies the position (absolute offset
in bytes from the beginning of the file) where the view begins.

The :ref:`MPI_File_set_view` interface allows the user to pass a
data-representation string to MPI I/O via the *datarep* argument. To
obtain the default value pass the value "native". The user can also
pass information via the *info* argument. See the :ref:`HINTS section
<man-openmpi-mpi-file-set-view>` for a list of hints that can be
set.

.. _man-openmpi-mpi-file-set-view:

HINTS
-----

The following hints can be used as values for the *info* argument.

**SETTABLE HINTS**

* ``MPI_INFO_NULL``

* ``shared_file_timeout``: Amount of time (in seconds) to wait for
  access to the shared file pointer before exiting with
  ``MPI_ERR_TIMEDOUT``.

* ``rwlock_timeout``: Amount of time (in seconds) to wait for
  obtaining a read or write lock on a contiguous chunk of a UNIX file
  before exiting with ``MPI_ERR_TIMEDOUT``.

* ``noncoll_read_bufsize``: Maximum size of the buffer used by MPI I/O
  to satisfy read requests in the noncollective data-access routines.

  .. note:: A buffer size smaller than the distance (in bytes) in a
            UNIX file between the first byte and the last byte of the
            access request causes MPI I/O to iterate and perform
            multiple UNIX ``read()`` or ``write()`` calls. If the
            request includes multiple noncontiguous chunks of data,
            and the buffer size is greater than the size of those
            chunks, then the UNIX ``read()`` or ``write()`` (made at
            the MPI I/O level) will access data not requested by this
            process in order to reduce the total number of ``write()``
            calls made. If this is not desirable behavior, you should
            reduce this buffer size to equal the size of the
            contiguous chunks within the aggregate request.

* ``noncoll_write_bufsize``: Maximum size of the buffer used by MPI
  I/O to satisfy write requests in the noncollective data-access
  routines.

  See the above note in ``noncoll_read_bufsize``.

* ``coll_read_bufsize``: Maximum size of the buffer used by MPI I/O to
  satisfy read requests in the collective data-access routines.

  See the above note in ``noncoll_read_bufsize``.

* ``coll_write_bufsize``: Maximum size of the buffer used by MPI I/O
  to satisfy write requests in the collective data-access routines.

  See the above note in ``noncoll_read_bufsize``.

* ``mpiio_concurrency``: (boolean) controls whether nonblocking I/O
  routines can bind an extra thread to an LWP.

* ``mpiio_coll_contiguous``: (boolean) controls whether subsequent
  collective data accesses will request collectively contiguous
  regions of the file.

**NON-SETTABLE HINTS**

* ``filename``: Access this hint to get the name of the file.


ERRORS
------

.. include:: ./ERRORS.rst