<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>An I/O Performance Evaluation Tool for Distributed Data-Intensive Scientific Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Eduardo C. Inacio</string-name>
          <email>eduardo.camilo@posgrad.ufsc.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mario A. R. Dantas</string-name>
          <email>mario.dantas@ufsc.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidade Federal de Santa Catarina (UFSC) Florianópolis</institution>
          ,
          <addr-line>SC -</addr-line>
          <country country="BR">Brasil</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>9</fpage>
      <lpage>16</lpage>
      <abstract>
        <p>I/O performance arises as a major bottleneck in nowadays dataintensive scientific applications. In order to identify execution parameters that provide an improved I/O performance, experimental efforts relying on synthetic I/O workload generators are widely employed. Focusing on addressing limitations of current workload generators, and to provide a more flexible, unified, and user-friendly approach for parallel I/O performance analysis, we have proposed a differentiated tool, called IORE. This paper focuses on demonstrating IORE applicability for I/O performance analysis of a workload derived from a real-world on scientific application. Our results indicate the potential of IORE as a parallel I/O experimental tool.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        and the impact of changing some controlled parameters. For that purpose, a variety of
approaches and tools have been proposed, with synthetic I/O workload generators, such the
INTERLEAVED-OR-RANDOM (IOR) benchmark [
        <xref ref-type="bibr" rid="ref12">Shan et al. 2008</xref>
        ], arising as the most
popular in the parallel I/O research community [
        <xref ref-type="bibr" rid="ref4">Boito et al. 2018</xref>
        ].
      </p>
      <p>
        Focusing on addressing some limitations of the IOR benchmark and facilitating
the I/O performance evaluation task on such complex environments, we have proposed
IOR-EXTENDED (IORE) [
        <xref ref-type="bibr" rid="ref8">Inacio and Dantas 2018</xref>
        ], what can be considered as a
differentiated I/O performance evaluation tool. Among the main new features introduced in
IORE are the experiment-driven execution, facilitated generation of heterogeneous
offsetbased and dataset-based I/O workloads, integration with distributed storage systems for
in-test configuration, and exporting of collected metrics and statistics. In this paper, we
demonstrate IORE applicability in the analysis of the I/O performance of different
approaches for writing and reading a large Cartesian dataset in a PFS, a typical workload
in real-world data-intensive scientific simulation and visualization systems. Moreover,
a variety of scenarios are explored using IORE parameters, whose experimental results
are discussed shedding light on particular I/O performance behaviors and best performing
configurations.
      </p>
      <p>The remainder of this paper is organized as follows. Section 2 provides a brief
overview of some related synthetic I/O workload generators. In Section 3, IORE is
presented, focusing on its dataset-based workload generation capabilities. Details on
scenarios and methods employed in the experiment conducted in this research work are provided
in Section 4, while experimental results are discussed in Section 5. Section 6 concludes
this paper with additional remarks about the observed results and planned directions for
IORE development.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Synthetic I/O Workload Generators</title>
      <p>
        Synthetic I/O workload generators have been widely employed in research works focusing
on parallel I/O and storage performance for data-intensive computational science
applications [
        <xref ref-type="bibr" rid="ref4">Boito et al. 2018</xref>
        ]. The MPI-TILE-IO [
        <xref ref-type="bibr" rid="ref2">ANL 2002</xref>
        ] benchmark evaluates the I/O
performance of non-contiguous file data accesses carried out by distributed processes
using MPI-IO collective operations. Each participating process is assigned a partition (tile)
of a two-dimensional matrix, where the number of tiles and the amount of data per tile
can be specified by the user.
      </p>
      <p>
        While MPI-TILE-IO is focused on a specific dataset type, the IOR
benchmark [
        <xref ref-type="bibr" rid="ref12">Shan et al. 2008</xref>
        ] was designed for stress testing a large-scale storage system.
Through a considerably large number of offset-oriented parameters, a variety of I/O
workloads can be generated with IOR, including contiguous and non-contiguous, sequential
and random data accesses. Moreover, tests can be carried out using I/O middlewares and
high-level I/O libraries among the most commonly observed in real-world applications,
such as POSIX, MPI-IO, HDF5, and NETCDF.
      </p>
      <p>
        Although being a de facto standard in the parallel I/O research community, some
specific dataset-based workloads are not easily or even precisely reproduced by IOR.
Further, only homogeneous workloads, in the sense of the amount of data transferred
per process, are supported in IOR. Focusing on addressing these issues, and providing a
more flexible, unified, and user-friendly approach for research works on parallel I/O and
storage performance evaluation, we have proposed the IORE I/O performance evaluation
tool [
        <xref ref-type="bibr" rid="ref8">Inacio and Dantas 2018</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. IORE for Performance Evaluation of Dataset-based Workloads</title>
      <p>As the name suggests, IORE was initially designed as an enhanced version of the IOR
benchmark. However, the proposal of IORE goes beyond generating homogeneous
offset-based I/O workloads and collecting performance metrics; it was designed to
provide an experiment-oriented approach for I/O performance evaluation studies,
contributing to reproducible results. Users define an IORE experiment through an intuitive JSON
structure, specifying, in addition to expected workload parameters, the number of
replications, order of run executions, among other options.</p>
      <p>Also, IORE was designed focusing on extensibility, providing well specified
interfaces for its main modules (Figure 1), such as Abstract File Storage Backend (AFSB)
and Abstract File I/O (AFIO) interfaces. Another new feature introduced in IORE is the
capability of exporting performance metrics after experiment completion. This aims at
facilitating I/O performance research works, taking the burden from users of error-prone
output parsing, and, thereby, reducing the time to results analysis. Finally, workload
generation capabilities were also considerably extended in IORE, with the support for
heterogeneous and dataset-based workloads.</p>
      <p>Generating dataset-based workloads is of particular interest for evaluation of I/O
performance on large-scale computational science simulation and scientific data
visualization, as most of these applications process datasets in well-known formats. Figure 2
illustrates an example of a Cartesian dataset workload representation using IORE. The
problem domain (i.e., the total dataset) in this example is composed of a three-dimensional
structured grid with size 4 ⇥ 3 ⇥ 2 (dim_sizes). This dataset is distributed across 12
processes, where each process receives a part of the grid with size 2 ⇥ 1 ⇥ 1, by
dividing each dimension of the dataset according to the workload definition (dim_divs).
Each element of the Cartesian grid holds, in this example, three variables: an integer, a
single-precision, and a double-precision floating-point (var_types). In a real-world
application, these variables could refer to physical properties, such as temperature,
pressure, and velocity. It can be observed in Figure 2 that the dataset in this example is stored
in a single shared file, using a row-major order approach. IORE also supports accessing
data in a file per process fashion, even though this parameter is not presented in Figure 2.
z = 2</p>
      <p>The dataset-based workload definition proposed in IORE, although simple, is
very flexible and scalable, allowing for the definition of varying dataset sizes and shapes.
Further, complex and sophisticated experiments can be conducted combining
datasetbased workload definitions with other orthogonal parameters, such as different I/O APIs,
middlewares, and high-level I/O libraries. This becomes a notably helpful feature for
characterizing the impact of different parameters in dataset access performance, and for
identifying parameters alternatives with improved performance. Moreover, the intrinsic
experimental-oriented execution of IORE favors more reproducible results, leading to
more accurate conclusions and more efficient optimization decisions.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Experimental Scenarios and Methods</title>
      <p>
        To demonstrate IORE capabilities for I/O performance evaluation of dataset-based
workloads, an experiment was conducted. This experiment consists of multiple
distributed processes writing and reading a three-dimensional Cartesian dataset with size
11520 ⇥ 5760 ⇥ 94, where each element of the dataset corresponds to a single-precision
floating-point variable, to and from one or more files in a PFS. Consequently, a total
of 23 GiB of data is transferred between compute nodes and the storage system at each
write/read test. It is worth mentioning this workload is derived from a real-world
largescale scientific data visualization problem [
        <xref ref-type="bibr" rid="ref7 ref9">Inacio et al. 2017</xref>
        b], in which a dataset with
the same characteristics, produced by a sub-kilometer global simulation of deep moist
atmospheric convection, was post-processed at the K supercomputer, in Japan. The
workload specified for these experiments corresponds to one time step of the original
realworld application, a reasonable consideration given that time steps are processed
sequentially and independently at the post-hoc visualization system.
      </p>
      <p>In this experiment, the impact of three parameters in the I/O performance was
evaluated, namely, the number of processes accessing the dataset, the file mode adopted
for storing the dataset, and the AFIO implementation. Table 1 lists these parameters and
their respective values. As the dataset is fixed for this experiment, changing the number of
processes implies in changing the dataset partitioning, which, in summary, results in less
data per process. Focusing on demonstrating some optimizations provided by MPI-IO,
collective I/O (col) and file view (fv) options from the MPI-IO AFIO implementation
were also explored in this experiment. These two options only make sense for distributed
data accesses at a shared file, and, thereby, were only evaluated for the Nx1 file mode.
A full factorial experimental design was employed, resulting in 14 experiment runs, each
consisting of a different combination of parameter values. The experiment was replicated
two times, with the run execution order randomized across replications, favoring
statistically independent measurements.</p>
      <p>The experimental environment is composed of two clusters from the Grid’5000
testbed, in France. Data and metadata servers of the ORANGEFS PFS were deployed
into the four nodes of the Hercule cluster, where each node contains two octa-core Intel
Xeon E5-2620 CPUs, 32 GB RAM, and 6 TB SATA HDD. IORE was compiled with the
MPICH MPI implementation and deployed at 20 nodes of the Nova cluster, each node
containing two octa-core Intel Xeon E5-2620 CPUs, 64 GB RAM, and the ORANGEFS
PFS served by the Hercule cluster mounted locally. A switched 10 Gigabit Ethernet
network interconnects both storage and compute nodes.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Results and Discussion</title>
      <p>Results of the experiment conducted in this research work are presented in Figure 3.
The y axis refers to the average of the two experiment replications for the time taken by
all processes participating in a given write/read test to conclude transferring the dataset
to/from the PFS, while the x axis presents different AFIO implementations and options.
Plots are organized in a grid, with upper plots presenting results of write tests, and lower
plots presenting results of read tests. From left to right, plots refer to variations in the file
mode and number of processes parameters, in this order: Nx1 with 20 processes, Nx1 with
40 processes, NxN with 20 processes, and NxN with 40 processes. As the variance of the
response variable (i.e., latency) was very small for all experiment runs, with a coefficient
of variation smaller than 10% in 13 out of 14 runs, error bars were not included in these
plots for readability.</p>
      <p>Nx1, 20 procs</p>
      <p>Nx1, 40 procs
5509
5356</p>
      <p>NxN, 20 procs
8150</p>
      <p>NxN, 40 procs
7840
1634
1795
1590
1370
1311
1326
1150
7500
5000
)2500 1812
s
(
y
c 0
n
e
taL7500</p>
      <p>Some interesting I/O performance behaviors can be observed through these
results. First, the most notably result is the performance improvement observed with
MPIIO when file view and collective I/O options are used together (i.e., MPI-IO (col+fv))
for either writing or reading the dataset to a shared file. Collective MPI-IO was in
average 130 times faster than independent MPI-IO in write tests, and 135 times faster in
read tests. These enhanced performance can be attributed to internal optimizations of the
ROMIO MPI-IO implementation used by MPICH, which transforms and coordinates
distributed data accesses in order to explore better performing I/O access patterns. In
this particular experimental scenario, each process issues very small sized requests (i.e.,
376 bytes long), a well-known undesired access pattern because of its resulting I/O
performance degradation. By exchanging request information, ROMIO can perform larger
data transfers, better exploring the storage system throughput capabilities.</p>
      <p>A very contrasting behavior is observed with C standard stream I/O functions.
While write performance was the worst among all results, being 3 to 7 times slower than
POSIX and independent MPI-IO, C stream read performance was considerably better,
being 65 to 85 times faster than POSIX and independent MPI-IO. The improved
performance of read tests with C stream is a result of its buffered I/O and prefetching
algorithms. At each read request, a larger part of the dataset is retrieved from the storage
system, which causes subsequent request to be serviced from data cached locally. It is
worth mentioning that, even though read tests happens after write tests in IORE, the
read_reorder_offset parameter was set to 1 at all tests, which mean that a process
i reads the data transferred by the i 1 process at each run, focusing on avoiding the
impact of write cached data in read test results. Regarding write performance, these same
features can have imposed an extra cost on I/O, degrading the overall performance.</p>
      <p>Less expressive results were observed with POSIX and independent MPI-IO
AFIO implementation. Independent MPI-IO was in average between 4% to 18% faster
than POSIX at all experiment runs, which can be attributed to enhanced operations
provided by ROMIO support to ORANGEFS. Nonetheless, without any other particular
improvement, such as collective operations and buffered I/O, both APIs demonstrate a
degraded performance due to the considerably large number of small I/O requests.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions and Future Works</title>
      <p>This paper contribution can be understood as a demonstration of some features provided
by IORE, our proposal for a differentiated I/O performance evaluation tool, and how
IORE can be used to assist in the analysis and improvement of the I/O performance of
data-intensive scientific applications. Using IORE newly introduced dataset-based
workload generation feature, an experimental study was conducted to analyze the I/O
performance of writing and reading a large Cartesian dataset, whose parameters were inspired
in a real-world application. Fourteen scenarios were evaluated, combining different I/O
APIs and options, number of tasks, and file sharing modes.</p>
      <p>In terms of usability, through a single and plain text experiment definition
file, available at https://doi.org/10.6084/m9.figshare.6376979, IORE
coordinated, executed, and exported results for all experiment runs and replications carried out in this
research work. This feature alleviates the burden on users that, previously, had to prepare complex
and error prone scripts and parsers to achieve the same result. Moreover, such approach favors
cooperation, as experiment definitions can be easily shared and executed among different groups.</p>
      <p>Results observed in this research work shed light on some I/O performance issues faced
by real-world data-intensive scientific applications. Even for conventional and structured datasets,
the performance of read and write operations can vary from dozens of seconds to hours, depending
on the I/O API and options explored. Particularly, we demonstrated through this IORE
experiment how MPI-IO can be highly efficient on dataset transferring using collective I/O and file
view. Furthermore, results indicate that C standard stream I/O is a likely alternative for read
operations, while it should be avoided for small writes. POSIX system calls and independent MPI-IO
functions, on the other, presents a more stable performance, although higher average latency.</p>
      <p>Although being part of an ongoing research work, initial results obtained with IORE are
promising and indicate its potential contribution to the field. In short-term, we intend at including
new features, such as support for particle datasets, and new AFIO implementations, such as HDF5,
and NETCDF. Later, we intend to investigate other types of I/O workloads, such as those observed
in Big Data and Internet of Things applications, and how they could be reproduced using IORE.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>Experiments presented in this paper were carried out using the Grid’5000 testbed, supported by a
scientific interest group hosted by Inria and including CNRS, RENATER and several Universities
as well as other organizations (see https://www.grid5000.fr). We also would like to
thank INESC P&amp;D Brasil support.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Ackx</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>Emerging Technologies, Disrupt or be Disrupted</article-title>
          . In Reimer, H.,
          <string-name>
            <surname>Pohlmann</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Schneider</surname>
          </string-name>
          , W., editors,
          <source>ISSE 2014 Securing Electronic Business Processes</source>
          , pages
          <fpage>177</fpage>
          -
          <lpage>187</lpage>
          . Springer, Wiesbaden.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>ANL</surname>
          </string-name>
          (
          <year>2002</year>
          ).
          <article-title>Parallel I/O Benchmarking Consortium</article-title>
          . research/projects/pio-benchmark/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Bell</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hey</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Szalay</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>Beyond the Data Deluge</article-title>
          .
          <source>Science</source>
          ,
          <volume>323</volume>
          (
          <issue>5919</issue>
          ):
          <fpage>1297</fpage>
          -
          <lpage>1298</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Boito</surname>
            ,
            <given-names>F. Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Inacio</surname>
            ,
            <given-names>E. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bez</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Navaux</surname>
            ,
            <given-names>P. O. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dantas</surname>
            ,
            <given-names>M. A. R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Denneulin</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          (
          <year>2018</year>
          ).
          <article-title>A Checkpoint of Research on Parallel I/O for High-Performance Computing</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <volume>51</volume>
          (
          <issue>2</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>35</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>CERN</surname>
          </string-name>
          (
          <year>2016</year>
          ). Processing: What to record? http://home.cern/about/computing/ processing-what-record.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Herbein</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ahn</surname>
            ,
            <given-names>D. H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lipari</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scogland</surname>
            ,
            <given-names>T. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stearman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grondona</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garlick</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Springmeyer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Taufer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <article-title>Scalable I/O-Aware Job Scheduling for Burst Buffer Enabled HPC Clusters</article-title>
          .
          <source>In HPDC '16 Proceedings of the 25th ACM International Symposium on High-Performance Parallel and Distributed Computing</source>
          , pages
          <fpage>69</fpage>
          -
          <lpage>80</lpage>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Inacio</surname>
            ,
            <given-names>E. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barbetta</surname>
            ,
            <given-names>P. A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Dantas</surname>
            ,
            <given-names>M. A. R.</given-names>
          </string-name>
          (
          <year>2017a</year>
          ).
          <article-title>A Statistical Analysis of the Performance Variability of Read/Write Operations on Parallel File Systems</article-title>
          . Procedia Computer Science - Special Issue: International Conference on Computational Science,
          <source>ICCS</source>
          <year>2017</year>
          ,
          <volume>108</volume>
          :
          <fpage>2393</fpage>
          -
          <lpage>2397</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Inacio</surname>
            ,
            <given-names>E. C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Dantas</surname>
            ,
            <given-names>M. A. R.</given-names>
          </string-name>
          (
          <year>2018</year>
          ).
          <article-title>IORE : A Flexible and Distributed I / O Performance Evaluation Tool for Hyperscale Storage Systems</article-title>
          .
          <source>In ISCC '18 Proceedings of the IEEE Symposium on Computers and Communication</source>
          , page (to appear). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Inacio</surname>
            ,
            <given-names>E. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nonaka</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ono</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Dantas</surname>
            ,
            <given-names>M. A. R.</given-names>
          </string-name>
          (
          <year>2017b</year>
          ).
          <article-title>Analyzing the I/O Performance of Post-Hoc Visualization of Huge Simulation Datasets on the K Computer</article-title>
          . In WSCAD '
          <fpage>17</fpage>
          -
          <string-name>
            <surname>Anais do XVIII Simpósio em Sistemas Computacionais de Alto Desempenho</surname>
          </string-name>
          , pages
          <fpage>148</fpage>
          -
          <lpage>159</lpage>
          . SBC.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Nonaka</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Inacio</surname>
            ,
            <given-names>E. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ono</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dantas</surname>
            ,
            <given-names>M. A. R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kawashima</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kawanabe</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Shoji</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          (
          <year>2018</year>
          ).
          <article-title>Data I/O management approach for the post-hoc visualization of big simulation data results</article-title>
          .
          <source>International Journal of Modeling</source>
          , Simulation, and Scientific Computing.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Roten</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cui</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olsen</surname>
            ,
            <given-names>K. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Day</surname>
            ,
            <given-names>S. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Withers</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Savran</surname>
            ,
            <given-names>W. H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mu</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <article-title>High-Frequency Nonlinear Earthquake Simulations on Petascale Heterogeneous Supercomputers</article-title>
          .
          <source>In SC '16 Proceedings of the International Conference for High Performance Computing</source>
          ,
          <article-title>Networking, Storage and Analysis</article-title>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Shan</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Antypas</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Shalf</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>Characterizing and predicting the I/O performance of HPC applications using a parameterized synthetic benchmark</article-title>
          .
          <source>In SC '08 Proceedings of the 2008 ACM/IEEE conference on Supercomputing. IEEE.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sim</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harr</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Oral</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2017</year>
          ).
          <article-title>Diving into petascale production file systems through large scale profiling and analysis</article-title>
          .
          <source>In PDSW-DISCS '17 Proceedings of the 2nd Joint International Workshop on Parallel Data Storage &amp; Data Intensive Scalable Computing Systems</source>
          , pages
          <fpage>37</fpage>
          -
          <lpage>42</lpage>
          . ACM Press.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>