Abstract
Processing large quantities of data is a common scenario for parallel applications. While distributed memory applications are able to improve the performance of their I/O operations by using parallel I/O libraries, there is no support for parallel I/O operations for applications using shared-memory programming models such as OpenMP available as of today. This paper presents parallel I/O interfaces for OpenMP. We discuss the rationale of our design decisions, present the interface specification, an implementation within the OpenUH compiler and discuss a number of optimizations performed. We demonstrate the benefits of this approach on different file systems for multiple benchmarks and application scenarios. In most cases, we observe significant improvements in I/O performance as compared to the sequential version. Furthermore, we perform a comparison of the OpenMP I/O functions introduced in this paper to message passing interface I/O, and demonstrate the benefits of the new interfaces.
Similar content being viewed by others
References
Bent, J., Gibson, G., Grider, G., McClelland, B., Nowoczynski, P., Nunez, J., Polte, M., Wingate, M.: PLFS: a checkpoint filesystem for parallel applications. In: Proceedings of the conference on high performance computing networking, storage and analysis, SC ’09, pp. 21:1–21:12, ACM, New York (2009)
Brown, S.A., Folk, M., Goucher, G., Rew, R.: Software for portable scientific data management. Comput. Phys. 7(3), 304–308 (1993)
Buttlar, D., Nichols, B., Farrell, J.P.: Pthreads Programming. O’Reilly & Associates Inc, Sebastopol (1996)
Chaarawi, M., Edgar, G.: Automatically selecting the number of aggregators for collective I/O operations. Workshop on interfaces and abstractions for scientific data storage. IEEE Cluster 2011 conference, pp. 428–437. Austin, Texas, USA (2011)
Chaarawi, M., Gabriel, E., Keller, R., Graham, R.L., Bosilca, G., Dongarra, J.J.: OMPIO: a modular software architecture for MPI I/O. In: Cotronis, Y., Danalis, A., Nikolopoulos, D., Dongarra, J., (Eds.) Recent Advances in Message Passing Interface, pp. 90–98, Santorini, Greece, September 2011. Springer, Berlin (2011)
Dickens, P.M., Logan, J.: Y-lib: a user level library to increase the performance of MPI-IO in a lustre file system environment. In HPDC ’09: Proceedings of the 18th ACM international symposium on High performance distributed computing, pp. 31–38, ACM, New York (2009)
El-Ghazawi, T., Cantonnet, F., Saha, P., Thakur, R.v., Ross, R., Bonachea, D.: UPC-IO: a parallel I/O API for UPC. V1.0 (2004)
Eachempati, D., Jun, H.J., Chapman, B.: An open-source compiler and runtime implementation for coarray fortran, (2010)
Furber, B.S.: ARM System Architecture. Addison-Wesley Longman Publishing Co. Inc, Boston (1996)
Gabriel, E., Fagg, G.E., Bosilca, G., Angskun, T., Dongarra, J.J., Squyres, J.M., Sahay, V. Kambadur, P., Barrett, B., Lumsdaine, A., Castain, R.H., Daniel, D.J., Graham, R.L., Woodall, T.S.: Open MPI: goals, concept, and design of a next generation MPI implementation. In Proceedings of the 11th European PVM/MPI Users’ Group Meeting, pp. 97–104, Budapest, Hungary, September (2004)
Gabriel, E., Venkatesan, V., Shah, S.: Towards high performance cell segmentation in multispectral fine needle aspiration cytology of thyroid lesions. Comput. Methods Programs Biomed. 98(3), 231–240 (2009)
Hierarchical Data Format Group. HDF5 reference manual, September 2004. Release 1.6.3, National Center for Supercomputing Application (NCSA), University of Illinois at Urbana-Champaign (2004)
Hedges, R., Loewe, B., McLarty, T., Morrone, C.: Parallel file system testing for the lunatic fringe: the care and feeding of restless I/O power users. In: Proceedings of the 22nd IEEE / 13th NASA Goddard Conference on Mass Storage Systems and Technologies, MSST ’05, pp. 3–17, IEEE Computer Society, Washington (2005)
Liao, C., Hernandez, O., Chapman, B., Chen, W., Zheng, W.: OpenUH: an optimizing, portable OpenMP compiler. In 12th workshop on compilers for parallel computers, January (2006)
Lustre webpage. http://www.lustre.org
Mehta, K., Gabriel, E., Chapman, B.: Specification and performance evaluation of parallel I/O interfaces for OpenMP. In: OpenMP in a Heterogeneous World, pp. 1–14. Springer, Berlin (2012)
Message Passing Interface Forum. MPI-2.2: Extensions to the Message Passing Interface. http://www.mpi-forum.org September (2009)
OpenMP Application Review Board. OpenMP Application Program Interface, Draft 3.0, October (2007)
Oral, S., Wang, F., Dillow, D., Shipman, G.M., Miller, R., Drokin, O.: Efficient object storage journaling in a distributed parallel file system. In: Burns, R.C., Keeton, K. (Eds), 8th USENIX Conference on File and Storage Technologies, pp. 143–154, (2010)
Owens, J.D., Houston, M., Luebke, D., Green, S., Stone, J.E., Phillips, J.C.: GPU computing. Proc. IEEE 96, 879–899 (2008)
PVFS2 webpage. Parallel Virtual File System. http://www.pvfs.org
Ross, R., Nurmi, D., Cheng, A., Zingale, M.: A case study in application I/O on linux clusters. In ACM/IEEE supercomputing conference, Denver, CO, USA, (2001)
Sarkar, V.: Exascale software study: software challenges in extreme scale systems. DARPA Technical report, (2009)
Sumimoto, S.: An overview of fujitsu’s lustre based file system. Technical report, Fujitsu, (2011)
Thakur, R., Gropp, W., Lusk, E.: On implementing MPI-IO portably and with high performance. In: Proceedings of the sixth workshop on I/O in parallel and distributed systems, pp. 23–32, (1999)
Wang, Y. Davis, K., Xu, Y., Jiang, S.: Iharmonizer: improving the disk efficiency of i/o-intensive multithreaded codes. In: Parallel Distributed Processing Symposium (IPDPS), 2012 IEEE 26th, International, pp. 921–932, May (2012)
Wong P., Van der Wijngaart, R. F.: NAS parallel benchmarks I/O version 3.0. Technical Report NAS-03-002, Computer Sciences Corporation, NASA Advanced Supercomputing (NAS) Division
Zeyao, M., Zhengfeng, H.: Application of MPI-IO in parallel particle transport monte-carlo simulation. Int. J. Parallel Emergent Distrib.Syst. 19(4), 227–236 (2004)
Acknowledgments
We would like to thank the Technical University of Dresden for giving us access to the Atlas cluster and their parallel file system. Partial support for this work was provided by the National Science Foundation’s Computer Systems Research program under Award No. CRI-0958464. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Mehta, K., Gabriel, E. Multi-Threaded Parallel I/O for OpenMP Applications. Int J Parallel Prog 43, 286–309 (2015). https://doi.org/10.1007/s10766-014-0306-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-014-0306-9