diff options
author | byrnHDF <byrnHDF@users.noreply.github.com> | 2023-06-26 19:22:17 (GMT) |
---|---|---|
committer | byrnHDF <byrnHDF@users.noreply.github.com> | 2023-06-26 19:22:17 (GMT) |
commit | d12e43bc201e15edffcdf94fe820aeae6ab44882 (patch) | |
tree | 90aa12006b20849b65b7bc8e3d4fe60a488f7247 /group___p_h5_f.html | |
parent | 4d49d1ee001bd4dff6b01e1830902bee22a19f3e (diff) | |
download | hdf5-d12e43bc201e15edffcdf94fe820aeae6ab44882.zip hdf5-d12e43bc201e15edffcdf94fe820aeae6ab44882.tar.gz hdf5-d12e43bc201e15edffcdf94fe820aeae6ab44882.tar.bz2 |
deploy: ab4d2aec9779b7a37747c95bd7b514417b299f73
Diffstat (limited to 'group___p_h5_f.html')
-rw-r--r-- | group___p_h5_f.html | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/group___p_h5_f.html b/group___p_h5_f.html new file mode 100644 index 0000000..6f527d2 --- /dev/null +++ b/group___p_h5_f.html @@ -0,0 +1,245 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen 1.9.1"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>HDF5: Parallel</title> +<link href="tabs.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="jquery.js"></script> +<script type="text/javascript" src="dynsections.js"></script> +<link href="navtree.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="resize.js"></script> +<script type="text/javascript" src="navtreedata.js"></script> +<script type="text/javascript" src="navtree.js"></script> +<link href="search/search.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="search/searchdata.js"></script> +<script type="text/javascript" src="search/search.js"></script> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ + $(document).ready(function() { init_search(); }); +/* @license-end */ +</script> +<link href="doxygen.css" rel="stylesheet" type="text/css" /> +<link href="hdf5doxy.css" rel="stylesheet" type="text/css"> +<!-- <link href="hdf5doxy.css" rel="stylesheet" type="text/css"/> + --> +<script type="text/javascript" src="hdf5_navtree_hacks.js"></script> +</head> +<body> +<div style="background:#FFDDDD;font-size:120%;text-align:center;margin:0;padding:5px">Please, help us to better serve our user community by answering the following short survey: <a href="https://www.hdfgroup.org/website-survey/">https://www.hdfgroup.org/website-survey/</a></div> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <td id="projectlogo"><img alt="Logo" src="HDFG-logo.png"/></td> + <td id="projectalign" style="padding-left: 0.5em;"> + <div id="projectname"><a href="https://www.hdfgroup.org">HDF5</a> +  <span id="projectnumber">1.15.0.ab4d2ae</span> + </div> + <div id="projectbrief">API Reference</div> + </td> + <td> <div id="MSearchBox" class="MSearchBoxInactive"> + <span class="left"> + <img id="MSearchSelect" src="search/mag_sel.svg" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + alt=""/> + <input type="text" id="MSearchField" value="Search" accesskey="S" + onfocus="searchBox.OnSearchFieldFocus(true)" + onblur="searchBox.OnSearchFieldFocus(false)" + onkeyup="searchBox.OnSearchFieldChange(event)"/> + </span><span class="right"> + <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a> + </span> + </div> +</td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.9.1 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +var searchBox = new SearchBox("searchBox", "search",false,'Search','.html'); +/* @license-end */ +</script> +</div><!-- top --> +<div id="side-nav" class="ui-resizable side-nav-resizable"> + <div id="nav-tree"> + <div id="nav-tree-contents"> + <div id="nav-sync" class="sync"></div> + </div> + </div> + <div id="splitbar" style="-moz-user-select:none;" + class="ui-resizable-handle"> + </div> +</div> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ +$(document).ready(function(){initNavTree('group___p_h5_f.html',''); initResizable(); }); +/* @license-end */ +</script> +<div id="doc-content"> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">Parallel<div class="ingroups"><a class="el" href="group___h5_f.html">Files (H5F)</a></div></div> </div> +</div><!--header--> +<div class="contents"> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"> + <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for Parallel:</div> +<div id="dynsection-0-summary" class="dynsummary" style="display:block;"> +</div> +<div id="dynsection-0-content" class="dyncontent" style="display:none;"> +<div class="center"><img src="group___p_h5_f.png" border="0" usemap="#agroup______p__h5__f" alt=""/></div> +<map name="agroup______p__h5__f" id="agroup______p__h5__f"> +<area shape="rect" href="group___h5_f.html" title=" " alt="" coords="5,5,97,31"/> +<area shape="rect" title=" " alt="" coords="145,5,216,31"/> +</map> +</div> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ga087dbbf37cb5c451ae8a6f66b227f0fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc">H5Fset_mpi_atomicity</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> file_id, <a class="el" href="_h5public_8h.html#ad470b00eccd2115c707c02de5fa1120d">hbool_t</a> flag)</td></tr> +<tr class="memdesc:ga087dbbf37cb5c451ae8a6f66b227f0fc"><td class="mdescLeft"> </td><td class="mdescRight">Sets the MPI atomicity mode. <a href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc">More...</a><br /></td></tr> +<tr class="separator:ga087dbbf37cb5c451ae8a6f66b227f0fc"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ga849316b77788799fecb321a87d987ade"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___p_h5_f.html#ga849316b77788799fecb321a87d987ade">H5Fget_mpi_atomicity</a> (<a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> file_id, <a class="el" href="_h5public_8h.html#ad470b00eccd2115c707c02de5fa1120d">hbool_t</a> *flag)</td></tr> +<tr class="memdesc:ga849316b77788799fecb321a87d987ade"><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the atomicity mode in use. <a href="group___p_h5_f.html#ga849316b77788799fecb321a87d987ade">More...</a><br /></td></tr> +<tr class="separator:ga849316b77788799fecb321a87d987ade"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<h2 class="groupheader">Function Documentation</h2> +<a id="ga849316b77788799fecb321a87d987ade"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga849316b77788799fecb321a87d987ade">◆ </a></span>H5Fget_mpi_atomicity()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Fget_mpi_atomicity </td> + <td>(</td> + <td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td> + <td class="paramname"><em>file_id</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="_h5public_8h.html#ad470b00eccd2115c707c02de5fa1120d">hbool_t</a> * </td> + <td class="paramname"><em>flag</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Retrieves the atomicity mode in use. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">file_id</td><td>File identifier </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">flag</td><td>Logical flag for atomicity setting. Valid values are: <ul> +<li>1 – MPI file access is set to atomic mode. </li> +<li>0 – MPI file access is set to nonatomic mode. </li> +</ul> +</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl> +<p><a class="el" href="group___p_h5_f.html#ga849316b77788799fecb321a87d987ade" title="Retrieves the atomicity mode in use.">H5Fget_mpi_atomicity()</a> retrieves the current consistency semantics mode for data access for the file <code>file_id</code>.</p> +<p>Upon successful return, <code>flag</code> will be set to <code>1</code> if file access is set to atomic mode and <code>0</code> if file access is set to nonatomic mode.</p> +<dl class="section see"><dt>See also</dt><dd><a href="https://portal.hdfgroup.org/display/HDF5/Enabling+a+Strict+Consistency+Semantics+Model+in+Parallel+HDF5">Enabling a Strict Consistency Semantics Model in Parallel HDF5</a></dd></dl> +<dl class="section since"><dt>Since</dt><dd>1.8.9 </dd></dl> + +</div> +</div> +<a id="ga087dbbf37cb5c451ae8a6f66b227f0fc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ga087dbbf37cb5c451ae8a6f66b227f0fc">◆ </a></span>H5Fset_mpi_atomicity()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="_h5public_8h.html#a3b079ecf932a5c599499cf7e298af160">herr_t</a> H5Fset_mpi_atomicity </td> + <td>(</td> + <td class="paramtype"><a class="el" href="_h5_ipublic_8h.html#a0045db7ff9c22ad35db6ae91662e1943">hid_t</a> </td> + <td class="paramname"><em>file_id</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="_h5public_8h.html#ad470b00eccd2115c707c02de5fa1120d">hbool_t</a> </td> + <td class="paramname"><em>flag</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sets the MPI atomicity mode. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">file_id</td><td>File identifier </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>Logical flag for atomicity setting. Valid values are: <ul> +<li><code>1</code> – Sets MPI file access to atomic mode. </li> +<li><code>0</code> – Sets MPI file access to nonatomic mode. </li> +</ul> +</td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Returns a non-negative value if successful; otherwise, returns a negative value.</dd></dl> +<dl class="section user"><dt>Motivation</dt><dd><a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc" title="Sets the MPI atomicity mode.">H5Fset_mpi_atomicity()</a> is applicable only in parallel environments using MPI I/O. The function is one of the tools used to ensure sequential consistency. This means that a set of operations will behave as though they were performed in a serial order consistent with the program order.</dd></dl> +<p><a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc" title="Sets the MPI atomicity mode.">H5Fset_mpi_atomicity()</a> sets MPI consistency semantics for data access to the file, <code>file_id</code>.</p> +<p>If <code>flag</code> is set to <code>1</code>, all file access operations will appear atomic, guaranteeing sequential consistency. If <code>flag</code> is set to <code>0</code>, enforcement of atomic file access will be turned off.</p> +<p><a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc" title="Sets the MPI atomicity mode.">H5Fset_mpi_atomicity()</a> is a collective function and all participating processes must pass the same values for <code>file_id</code> and <code>flag</code>.</p> +<p>This function is available only when the HDF5 library is configured with parallel support (<code>–enable-parallel</code>). It is useful only when used with the <a class="el" href="_h5_f_dmpio_8h.html#a7a231bc1d78744088a4e1d297284cabf">H5FD_MPIO</a> driver (see <a class="el" href="group___f_a_p_l.html#gaa0204810c1fea1667d62cf7c176416ff" title="Stores MPI IO communicator information to the file access property list.">H5Pset_fapl_mpio()</a>). </p> +<dl class="section attention"><dt>Attention</dt><dd><p class="startdd"><a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc" title="Sets the MPI atomicity mode.">H5Fset_mpi_atomicity()</a> calls <code>MPI_File_set_atomicity</code> underneath and is not supported if the execution platform does not support <code>MPI_File_set_atomicity</code>. When it is supported and used, the performance of data access operations may drop significantly.</p> +<p class="enddd">In certain scenarios, even when <code>MPI_File_set_atomicity</code> is supported, setting atomicity with <a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc" title="Sets the MPI atomicity mode.">H5Fset_mpi_atomicity()</a> and <code>flag</code> set to 1 does not always yield strictly atomic updates. For example, some <a class="el" href="group___h5_d.html#ga98f44998b67587662af8b0d8a0a75906" title="Writes raw data from a buffer to a dataset.">H5Dwrite()</a> calls translate to multiple <code>MPI_File_write_at</code> calls. This happens in all cases where the high-level file access routine translates to multiple lower level file access routines. The following scenarios will raise this issue: </p><ul> +<li>Non-contiguous file access using independent I/O </li> +<li>Partial collective I/O using chunked access </li> +<li>Collective I/O using filters or when data conversion is required</li> +</ul> +<p>This issue arises because MPI atomicity is a matter of MPI file access operations rather than HDF5 access operations. But the user is normally seeking atomicity at the HDF5 level. To accomplish this, the application must set a barrier after a write, <a class="el" href="group___h5_d.html#ga98f44998b67587662af8b0d8a0a75906" title="Writes raw data from a buffer to a dataset.">H5Dwrite()</a>, but before the next read, <a class="el" href="group___h5_d.html#ga8287d5a7be7b8e55ffeff68f7d26811c" title="Reads raw data from a dataset into a provided buffer.">H5Dread()</a>, in addition to calling <a class="el" href="group___p_h5_f.html#ga087dbbf37cb5c451ae8a6f66b227f0fc" title="Sets the MPI atomicity mode.">H5Fset_mpi_atomicity()</a>.The barrier will guarantee that all underlying write operations execute atomically before the read operations starts. This ensures additional ordering semantics and will normally produce the desired behavior. </p> +</dd></dl> +<dl class="section see"><dt>See also</dt><dd><a href="https://portal.hdfgroup.org/display/HDF5/Enabling+a+Strict+Consistency+Semantics+Model+in+Parallel+HDF5">Enabling a Strict Consistency Semantics Model in Parallel HDF5</a></dd></dl> +<dl class="section since"><dt>Since</dt><dd>1.8.9 </dd></dl> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Mon Jun 26 2023 19:01:38 for HDF5 by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li> + </ul> +</div> +</body> +</html> |