Hardware Reference
In-Depth Information
While some benchmarks, like IOR, can be adjusted to mimic a specific
application [19], a single synthetic benchmark has not been used to represent
a diverse complex workload. In I/O benchmarking, there is a trade-off between
the simplicity of the benchmark and what it represents.
In order to understand the I/O characteristics of a specific application or
a more complex workload, applications need to be profiled individually.
24.3 Why Profile I/O in Scientific Applications?
In order achieve optimal performance on HPC systems, users profile ap-
plications to understand an application's characteristics. Proling an applica-
tion can inform the user about such metrics as the top routines where time is
spent, MPI overhead, and cache misses. In the HPC community, there are a
number of tools for profiling applications such as IPM [5], HPC toolkit [4], Val-
grind [11], as well as a number of vendor-provided solutions such as Vtune [6]
from Intel, Craypat [1] from Cray, and the IBM profiler from IBM.
Profiling I/O in applications can be just as important. With the I/O and
data needs of the HPC community expanding, and as more time is spent in
application I/O, it is even more important to profile application I/O. Non-
optimal I/O can provide significant bottlenecks to performance. There are a
number of reasons to do I/O profiling in an application. The first is simply to
understand the amount of time an application is spending doing I/O. If after
profiling an application, it is found that an application is spending very little
time doing I/O, then a user can focus his or her time optimizing other parts of
the code. On the other hand, if an application is spending a significant amount
of time doing I/O, then a user knows this is an area to target to improve an
application's performance.
I/O profilers can provide a wealth of information to the developer of a
code, such as the amount of data read and written, the rate at which data is
read and written, and the distribution of write and read sizes. Armed with this
information, an application developer can change an applications I/O pattern
to improve performance.
24.4 Brief Introduction to I/O Profilers
While the mechanisms of different I/O profilers may vary, at their core they
must in some way intercept the I/O calls (trace) in an application and record
and output the data. A number of tools have been produced especially for the
 
Search WWH ::




Custom Search