Parallel and Concurrent I/O Management for High-End Computing
High-end parallel applications that store and analyze large datasets demand significant
I/O capacity. Clusters of storage servers, managed by parallel file systems and
integrated with I/O middleware (such as MPI-IO) and operating systems, promise to
provide scalable I/O performance for high-end applications. These systems are complex
in the interaction between multiple levels of application/system software and hardware
components, and in the wide ranges of system features and configuration settings.
This project investigates system-level techniques to better manage parallel and
concurrent I/O for high-end computing. To characterize I/O performance behaviors
and pinpoint anomalies, we devised a model-driven performance debugging
approach (FAST'05), studied multi-level I/O tracing (ICPP'07), and explored the
use of references in I/O performance characterization (SIGMETRICS'09).
To address the disk seek/rotation during concurrent I/O, we proposed a new
I/O prefetching approach that achieves 2-competitive performance (EuroSys'07).
This project also studies the benchmarking of I/O-intensive high-end workloads for
their easy uses in practice.
We produced easy-to-run benchmarks from raw high-end parallel I/O traces (details
later in this page).
We used such benchmarks to evaluate the performance effects of scientific I/O
workloads on the emerging flash-based solid state storage (IASDS'09).
Furthermore, we devised new I/O scheduling techniques for flash-based solid state
storage to achieve efficiency, fairness, and responsiveness (FAST'12 and USENIX ATC'13).
Project Participants:
Chuanpeng Li, Ph.D., now at Bloomberg
Pin Lu, M.S., now at Microsoft
Stan Park, Ph.D., now at HP Labs
Jonathan Pearson, M.S.
Kai Shen, Principal Investigator, University of Rochester
Contact:
Kai Shen
(kshen@cs.rochester.edu)
Most Relevant Publications:
-
Kai Shen and Stan Park,
"FlashFQ: A Fair Queueing I/O Scheduler for Flash-Based SSDs".
In Proc. of the USENIX Annual Technical Conference (USENIX ATC'13),
San Jose, CA, June 2013.
Abstract.
PDF version.
Conference talk slides in Powerpoint.
-
Stan Park, Terence Kelly, and Kai Shen,
"Failure-Atomic msync(): A Simple and Efficient Mechanism for Preserving the Integrity of Durable Data".
In Proc. of the EuroSys Conference (EuroSys'13),
Prague, Czech Republic, April 2013.
Abstract.
PDF version.
-
Stan Park and Kai Shen,
"FIOS: A Fair, Efficient Flash I/O Scheduler".
In Proc. of the 10th USENIX Conference on File and Storage Technologies (FAST'12),
San Jose, CA, February 2012.
Abstract.
PDF version.
-
Stan Park and Kai Shen,
"A Performance Evaluation of Scientific I/O Workloads on Flash-Based SSDs".
In Workshop on Interfaces and Architectures for Scientific Data Storage (IASDS'09),
New Orleans, LA, September 2009.
Abstract.
Postscript version.
PDF version.
-
Kai Shen, Christopher Stewart, Chuanpeng Li, and Xin Li,
"Reference-Driven Performance Anomaly Identification".
In Proc. of ACM SIGMETRICS,
Pages 85-96, Seattle, WA, June 2009.
Abstract.
Postscript version.
PDF version.
Conference talk slides in Powerpoint.
-
Pin Lu and Kai Shen,
"Multi-Layer Event Trace Analysis for Parallel I/O Performance Tuning".
In Proc. of the 36th International Conference on Parallel Processing (ICPP'07),
XiAn, China, September 2007.
Abstract.
Postscript version.
PDF version.
-
Chuanpeng Li, Kai Shen, and Athanasios E. Papathanasiou,
"Competitive Prefetching for Concurrent Sequential I/O".
In Proc. of the Second EuroSys Conference (EuroSys'07),
Pages 189-202, Lisbon, Portugal, March 2007.
Abstract.
Postscript version.
PDF version.
-
Kai Shen, Ming Zhong, and Chuanpeng Li,
"I/O System Performance Debugging Using Model-driven Anomaly Characterization".
In Proc. of the 4th USENIX Conference on File and Storage Technologies (FAST'05),
Pages 309-322, San Francisco, CA, December 2005.
Abstract.
Postscript version.
PDF version.
HTML version.
Conference talk slides in Powerpoint.
Kernel patch code release
for bug fix #1 in the paper.
Trace-Driven Scientific I/O Benchmarks:
Traces of scientific I/O workloads are being made available to enable computing-related
research. Examples include traces from
Sandia National Laboratories
and Los Alamos National Laboratory.
Useful statistics can be extracted from such traces. However, it is sometimes desirable
to run applications represented by the traces so as to evaluate the performance and other
behaviors of I/O and storage systems. For this purpose, we have created a trace player,
TracePlay/Control, written in C, to recreate some of the trace conditions in the form of
runnable benchmarks. Our trace player uses formatted traces that are derived from
original scientific I/O traces. Our player is less of a full-blown utility but more of
a benchmark using traces extracted from actual scientific applications. The benchmark
itself is largely just a shell or wrapper for a parsed trace.
In order to successfully replay a trace, the file system context must be recreated.
Our trace player extracts directory and file names accessed throughout the trace and
recreates the hierarchy. Files are created with the maximum estimated size inferred from
I/O system calls (read, write, seek). Our trace player is capable of running in two modes:
- Sequential (using traceplay): Sequential mode is essentially batch mode for traces.
It can replay a single trace. If given a list of traces, it will replay those traces
one after another, i.e. sequentially.
- Parallel (using tracecontrol): In parallel mode, two or more traces are replayed
concurrently.
- unsynchronized: an input list of traces is replayed concurrently by parallel
processes through the fork system call. All processes are allowed to run at best
possible speed.
- synchronized: Since many scientific applications use concurrent processes
with some form of synchronization, we also support a synchronized replay mode.
Synchronized mode requires that some version of MPI be installed (MPICH-2 was used
in our system) as MPI calls in the traces are used to enforce synchronization.
Download source: traceplayer_v0.9.zip
Traces below originated from those released by
Sandia National Laboratories
and Los Alamos National Laboratory.
We sanitized the original traces and converted them into the format suitable for our
trace player.
Installation and usage notes (also in the README file).
Support:
This project is supported by the National Science Foundation under
Grants No. 0937571 (link to the award abstract)
and No. 0621472 (link to the award abstract).
Note:
Any opinions, findings, and conclusions or recommendations expressed in this material
are those of the author(s) and do not necessarily reflect the views of the National
Science Foundation.