Abstract
Efficient execution of parallel scientific applications requires high-performance storage systems designed to meet their I/O requirements. Most high-performance I/O intensive applications access multiple layers of the storage stack during their disk operations. A typical I/O request from these applications may include accesses to high-level libraries such as MPI I/O, executing on clustered parallel file systems like PVFS2, which are in turn supported by native file systems like Linux. In order to design and implement parallel applications that exercise this I/O stack, it is important to understand the flow of I/O calls through the entire storage system. Such understanding helps in identifying the potential performance and power bottlenecks in different layers of the storage hierarchy. To trace the execution of the I/O calls and to understand the complex interactions of multiple user-libraries and file systems, we propose an automatic code instrumentation technique, which enables us to collect detailed statistics of the I/O stack. Our proposed I/O tracing tool traces the flow of I/O calls across different layers of an I/O stack, and can be configured to work with different file systems and user-libraries. It also analyzes the collected information to generate output in terms of different user-specified metrics of interest.
This work is supported in part by NSF grants 0937949, 0621402, 0724599, 0821527, 0833126, 0720749, 0621443, 0724599, and 0833131 and DOE grants DEAC02-06CH11357, DE-FG02-08ER25848, DE-SC0002156, and DESC0001283.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bala, V., et al.: Dynamo: A transparent dynamic optimization system. In: PLDI (2000)
Bruening, D.L.: Efficient, transparent, and comprehensive runtime code manipulation. PhD thesis, MIT, Cambridge, MA, USA (2004)
Carns, P.H., et al.: PVFS: A parallel file system for linux clusters. In: Proceedings of the Annual Linux Showcase and Conference (2000)
Chan, A., et al.: User’s guide for MPE: Extensions for MPI programs (1998)
De Bus, B., et al.: The design and implementation of FIT: A flexible instrumentation toolkit. In: Proceedings of PASTE (2004)
del Rosario, J.M., et al.: Improved parallel I/O via a two-phase run-time access strategy. SIGARCH Comput. Archit. News 21(5), 31–38 (1993)
Fisher, R.T., et al.: Terascale turbulence computation using the flash3 application framework on the IBM Blue Gene/L system. IBM J. Res. Dev. 52(1/2) (2008)
Gropp, W., et al.: MPI — The Complete Reference: the MPI-2 Extensions, vol. 2. MIT Press, Cambridge (1998)
Gurumurthi, S., et al.: DRPM: Dynamic speed control for power management in server class disks. In: ISCA (2003)
HDF (Hierarchical Data Format) , http://www.hdfgroup.org
Herrarte, V., Lusk, E.: Studying parallel program behavior with upshot. Technical Report ANL–91/15, Argonne National Laboratory (1991)
Hollingsworth, J.K., et al.: MDL: A language and compiler for dynamic program instrumentation. In: Malyshkin, V.E. (ed.) PaCT 1997. LNCS, vol. 1277, Springer, Heidelberg (1997)
Huck, K.A., Malony, A.D.: PerfExplorer: A Performance Data Mining Framework For Large-Scale Parallel Computing. In: SC (2005)
Karrels, E., Lusk, E.: Performance analysis of MPI programs. In: Workshop on Environments and Tools For Parallel Scientific Computing (1994)
Kumar, N., et al.: Low overhead program monitoring and profiling. In: Proceedings of PASTE (2005)
Li, J., et al.: Parallel netCDF: A high-performance scientific I/O interface. In: SC (2003)
Luk, C.-K., et al.: Pin: Building customized program analysis tools with dynamic instrumentation. In: PLDI (2005)
Moore, S., et al.: Review of performance analysis tools for MPI parallel programs. In: Cotronis, Y., Dongarra, J. (eds.) PVM/MPI 2001. LNCS, vol. 2131, p. 241. Springer, Heidelberg (2001)
Moore, S., et al.: A scalable approach to MPI application performance analysis. In: Di Martino, B., Kranzlmüller, D., Dongarra, J. (eds.) EuroPVM/MPI 2005. LNCS, vol. 3666, pp. 309–316. Springer, Heidelberg (2005)
Nieuwejaar, N., et al.: File-access characteristics of parallel scientific workloads. IEEE Transactions on Parallel and Distributed Systems 7, 1075–1089 (1996)
Randall, D.A.: Design and testing of a global cloud-resolving model (2009)
Sankaran, R., et al.: Direct numerical simulations of turbulent lean premixed combustion. Journal of Physics: Conference Series 46(1), 38 (2006)
Simitci, H.: Pablo MPI Instrumentation User’s Guide. University of Illinois. Tech. Report (1996)
Srivastava, A., Eustace, A.: ATOM: A system for building customized program analysis tools. In: PLDI (1994)
Ultrastar, I.: 36Z15 Data Sheet (2010), http://www.hitachigst.com/hdd/ultra/ul36z15.htm
Vetter, J., Chambreau, C.: mpiP: Lightweight, scalable MPI profiling (2010), http://mpip.sourceforge.net/
Vijayakumar, K., et al.: Scalable I/O tracing and analysis. In: Supercomputing PDSW (2009)
Zaki, O., et al.: Toward scalable performance visualization with jumpshot. Int. J. High Perform. Comput. Appl. 13(3), 277–288 (1999)
Fryxell, B., et al.: FLASH: Adaptive Mesh Hydrodynamics Code. The Astrophysical Journal Supplement Series 131 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kim, S.J. et al. (2010). Automated Tracing of I/O Stack. In: Keller, R., Gabriel, E., Resch, M., Dongarra, J. (eds) Recent Advances in the Message Passing Interface. EuroMPI 2010. Lecture Notes in Computer Science, vol 6305. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15646-5_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-15646-5_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15645-8
Online ISBN: 978-3-642-15646-5
eBook Packages: Computer ScienceComputer Science (R0)