Skip to content

Commit eda52b7

Browse files
authored
Merge pull request #21 from jhendersonHDF/subf_user_guide
Update Subfiling User's Guide with notes about stripe count
2 parents b7067ed + c01678a commit eda52b7

File tree

7 files changed

+42
-7
lines changed

7 files changed

+42
-7
lines changed
Binary file not shown.

RFCs/HDF5_Library/VFD_Subfiling/user_guide/appendices/ref_manual.tex

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,15 @@ \subsection{H5FD\_subfiling\_params\_t}
299299

300300
\texttt{int64\_t stripe\_size} - This field contains the size (in bytes) of data stripes
301301
written to subfiles. The default setting for this parameter is a 32MiB stripe size. The value
302-
must be $> 0$.
302+
set must either be the value defined by the \texttt{H5FD\_SUBFILING\_DEFAULT\_STRIPE\_SIZE}
303+
macro, or an integer value $> 0$.
303304

304305
\texttt{int32\_t stripe\_count} - This field contains the target number of subfiles to use.
305-
The default setting for this parameter is set such that one subfile is used per machine node.
306-
The value must be $> 0$.
306+
It is mostly useful when pre-creating an HDF5 file in a parallel application within some
307+
subset of \texttt{MPI\_COMM\_WORLD} (see section \ref{sec:tips}). The default setting for
308+
this parameter is set such that one subfile is used per machine node. The value set must
309+
either be the value defined by the \texttt{H5FD\_SUBFILING\_DEFAULT\_STRIPE\_COUNT} macro,
310+
or an integer value $> 0$.
307311
\end{flushleft}%
308312

309313
\newpage
@@ -392,7 +396,8 @@ \subsection{H5FD\_ioc\_config\_t}
392396

393397
\texttt{int32\_t thread\_pool\_size} - This field contains the number of worker threads to
394398
use per I/O Concentrator. The default setting for this parameter is 4 worker threads per I/O
395-
Concentrator. The value must be $> 0$.
399+
Concentrator. The value set must either be the value defined by the \texttt{H5FD\_IOC\_DEFAULT\_THREAD\_POOL\_SIZE}
400+
macro, or an integer value $> 0$.
396401
\end{flushleft}%
397402

398403
\newpage

RFCs/HDF5_Library/VFD_Subfiling/user_guide/main.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
% Document metadata: Title, author(s), etc
3636
\title{HDF5 Subfiling VFD User's Guide}
3737
\author{Jordan Henderson}
38-
\date{Jan. 25, 2023}
38+
\date{Jun. 19, 2023}
3939
\organization{THG}
4040
\orglogo{THG_LOGO}
41-
\rfcversion{v1}
41+
\rfcversion{v2}
4242

4343
% Revision History
4444
\input{support/revisions}

RFCs/HDF5_Library/VFD_Subfiling/user_guide/sections/acknowledgements.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ \section*{Acknowledgments}
99

1010
% Include this section in the table of contents
1111
\addcontentsline{toc}{section}{Acknowledgements}
12-
This work was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration.
12+
This work was supported by the Exascale Computing Project (17-SC-20-SC), a joint project of the U.S. Department of Energy’s Office of Science and National Nuclear Security Administration, responsible for delivering a capable exascale ecosystem, including software, applications, and hardware technology, to support the nation’s exascale computing imperative.
1313

1414
\end{document}

RFCs/HDF5_Library/VFD_Subfiling/user_guide/sections/tips.tex

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
\newpage
66

77
\section{Tips and best practices}
8+
\label{sec:tips}
89

910
\begin{itemize}
1011
\item While the default configuration for the Subfiling VFD has been found
@@ -23,6 +24,26 @@ \section{Tips and best practices}
2324
space and vastly increase the size of the resulting file, so caution may be
2425
needed when trying to find a good balance with this suggestion.
2526

27+
\item If using the Subfiling VFD with a parallel HDF5 application that
28+
pre-creates an HDF5 file on a single MPI rank or some other subset of
29+
\texttt{MPI\_COMM\_WORLD}, it is necessary to adjust the "stripe count" (or
30+
number of subfiles) value that the Subfiling VFD uses internally in order to
31+
ensure that the proper number of subfiles gets generated when the logical HDF5
32+
file is created. Without setting this value, the VFD will default to creating
33+
one subfile per machine node, which will cause it to create only one subfile
34+
in the case of pre-creating an HDF5 file on a single MPI rank. Note that as
35+
pre-creating an HDF5 file on a subset of \texttt{MPI\_COMM\_WORLD} is expected
36+
to be a less common operation when using the Subfiling VFD, an environment
37+
variable for modifying this value has not been provided at this time and the
38+
VFD will need to be configured on a File Access Property List for this use case.
39+
Using the example in section \ref{ex:ex2} as a guide, one can configure the
40+
stripe count value by setting the \texttt{stripe\_count} field in the
41+
\texttt{H5FD\_subfiling\_params\_t} structure, which is part of the
42+
\texttt{H5FD\_subfiling\_config\_t} structure that is passed to
43+
\texttt{H5Pset\_fapl\_subfiling}. For that particular example, one would
44+
set the \texttt{subf\_config.shared\_cfg.stripe\_count} field to the desired
45+
total number of subfiles.
46+
2647
\item While not always leading to an improvement in performance, it can
2748
sometimes be useful to enable collective metadata writes and, if the application's
2849
access pattern allows for it, collective metadata reads in a parallel HDF5

RFCs/HDF5_Library/VFD_Subfiling/user_guide/sections/usage.tex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,14 @@ \subsubsection{By environment variables}
194194
worker threads per I/O Concentrator. It is interpreted as an \texttt{int} value and must be $> 0$.
195195
\end{itemize}
196196

197+
Note that modifying the stripe count from its default setting is expected to be a less common operation
198+
with the Subfiling VFD. Therefore, an environment variable for changing the value has not currently
199+
been provided at this time. If an HDF5 application needs to modify the stripe count value (refer to
200+
section \ref{sec:tips} for information on when modifying the stripe count value is necessary), the
201+
Subfiling VFD will need to be configured by a File Access Property List. However, note that any
202+
settings in environment variables will still take precedence, even when the VFD is configured by
203+
a File Access Property List.
204+
197205
\subsection{Minimal example}
198206

199207
The following is a minimal example of creating a Subfiling-based HDF5 file
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
% This section is required and it should be updated with each version change. Add a new revision in the `support/revisions.tex' file, they will be added to this table automatically. Note the version number, date, and say what it did / what changed. If this is the first version that was published for public comment, tell the reader where to send comments, as in the Version 3 example in the table below.
22
\revision{v1}{Jan. 25, 2023}{Version 1 drafted.}
3+
\revision{v2}{Jun. 19, 2023}{Added notes about Subfiling VFD's stripe count setting}

0 commit comments

Comments
 (0)