Abstract
In this paper, we describe our experiences in implementing and applying Coarray Fortran (CAF) for the development of data-intensive applications in the domain of Oil and Gas exploration. The successful porting of reverse time migration (RTM), a data-intensive algorithm and one of the largest uses of computational resources in seismic exploration, is described, and results are presented demonstrating that the CAF implementation provides comparable performance to an equivalent MPI version. We then discuss further language extensions for supporting scalable parallel I/O operating on the massive data sets that are typical of applications used in seismic exploration.
Similar content being viewed by others
Notes
Teams are a feature that are likely to be added in the next revision of the Fortran standard and will be described in the forthcoming Technical Specification for additional parallel processing features.
References
Reid, J.: Coarrays in the next Fortran standard. Fortran Forum 29(2), 10–27 (2010). http://doi.acm.org/10.1145/1837137.1837138
Numrich, R.W., Reid, J.: Co-array Fortran for parallel programming. Fortran Forum 17(2), 1–31 (1998)
Chapman, B., Eachempati, D., Hernandez, O.: Experiences developing the OpenUH compiler and runtime infrastructure. Int. J. Parallel Program. (2012). doi:10.1007/s10766-012-0230-9, pp. 1–32
Eachempati, D., Jun, H.J., Chapman, B.: An open-source compiler and runtime implementation for coarray Fortran. In: PGAS’10, Oct 12–15. ACM, New York (2010)
Dotsenko, Y., Coarfa, C., Mellor-Crummey, J.: A multi-platform co-array Fortran compiler. In: PACT’04: Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques, pp. 29–40. IEEE Comput. Soc., Washington (2004)
Chen, W.-Y., Iancu, C., Yelick, K.: Communication optimizations for fine-grained UPC applications. In: Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques, PACT’05, pp. 267–278. IEEE Comput. Soc., Washington (2005). doi:10.1109/PACT.2005.13
Bonachea, D.: GASNet specification, v1.1. Tech. rep., Berkeley, CA, USA (2002)
Nieplocha, J., Carpenter, B.: ARMCI: a portable remote memory copy library for distributed array libraries and compiler run-time systems. In: Proceedings of the 11 IPPS/SPDP’99 Workshops Held in Conjunction with the 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing, pp. 533–546. Springer, Berlin (1999)
Baysal, E., Kosloff, D., Sherwood, J.: Reverse time migration. Geophysics 48(11), 1514–1524 (1983)
Dussaud, E., Symes, W., Williamson, P., Lemaistre, L., Singer, P., Denel, B., Cherrett, A.: Computational strategies for reverse-time migration (2008)
Fletcher, R., Du, X., Fowler, P.: Reverse time migration in tilted transversely isotropic (TTI) media. Geophysics 74(6), WCA179–WCA187 (2009)
Billette, F., Brandsberg-Dahl, S.: The 2004 BP velocity benchmark. In: 67th Annual Internat. Mtg., EAGE, Expanded Abstracts, EAGE, p. B035 (2005)
Stone, A.I., Dennis, J.M., Strout, M.M.: Evaluating coarray Fortran with the CGPOP miniapp. In: Fifth Conference on Partitioned Global Address Space Programming Model (PGAS11), Texas, USA (2011)
Hasert, M., Klimach, H., Roller, S.: CAF versus MPI—applicability of coarray Fortran to a flow solver. In: Cotronis, Y., Danalis, A., Nikolopoulos, D., Dongarra, J. (eds.) Recent Advances in the Message Passing Interface. Lecture Notes in Computer Science, vol. 6960, pp. 228–236. Springer, Berlin (2011). doi:10.1007/978-3-642-24449-0_26
Barrett, R.: Co-array Fortran experiences with finite differencing methods. In: The 48th Cray User Group Meeting, Lugano, Italy (2006)
Thakur, R., Gropp, W., Lusk, E.: Data sieving and collective I/O in ROMIO. In: Proceedings of the 7th Symposium on the Frontiers of Massively Parallel Computation, FRONTIERS’99, p. 182. IEEE Comput. Soc., Washington (1999). http://dl.acm.org/citation.cfm?id=795668.796733
Mehta, K., Gabriel, E., Chapman, B.: Specification and performance evaluation of parallel I/O interfaces for OpenMP. In: Proceedings of the 8th International Conference on OpenMP in a Heterogeneous World, IWOMP’12, pp. 1–14. Springer, Berlin (2012)
El-Ghazawi, T., Cantonnet, F., Saha, P., Thakur, R., Ross, R., Bonachea, D.: UPC-IO: A parallel I/O API for UPC v1.0pre10 (2003)
Reid, J.: Requirements for further coarray features—N1924 (2012)
WG5: Draft TS 18508 additional parallel features in Fortran—N1983 (2013)
ANSI, ISO: ISO/IEC 1539-1:2010 information technology—programming languages—Fortran—Part 1: base language (2010)
Global Arrays Webpage. http://www.emsl.pnl.gov/docs/global/
Nieplocha, J., Palmer, B., Tipparaju, V., Krishnan, M., Trease, H., Aprà, E.: Advances, applications and performance of the global arrays shared memory programming toolkit. Int. J. High Perform. Comput. Appl. 20(2), 203–231 (2006). doi:10.1177/1094342006064503
Nieplocha, J., Foster, I.: Disk resident arrays: an array-oriented I/O library for out-of-core computations. In: Proceedings of the 6th Symposium on the Frontiers of Massively Parallel Computation, FRONTIERS’96, p. 196. IEEE Comput. Soc., Washington (1996). http://dl.acm.org/citation.cfm?id=795667.796727
Beddall, A.: The g95 project. http://www.g95.org/coarray.shtml
Moene, T.: Towards an implementation of coarrays in GNU Fortran. http://ols.fedoraproject.org/GCC/Reprints-2008/moene.reprint.pdf
Mellor-Crummey, J., Adhianto, L., Scherer, W.: A new vision for coarray Fortran. In: PGAS’09, Rice University (2009)
Nieplocha, J., Foster, I., Kendall, R.A.: ChemIO: high performance parallel I/O for computational chemistry applications (1998). http://www.mcs.anl.gov/chemio/
Nieplocha, J., Foster, I.:. Disk resident arrays: an array-oriented I/O library for out-of-core computations
T.H. Group: HDF5 user’s guide, release 1.6.6 (2007). http://hdfgroup.org/
Trac—Integrated SCM & Project Management: Parallel nerCDF: a high performance API for NetCDF file access. http://trac.mcs.anl.gov/projects/parallel-netcdf
Pincus, R., Rew, R.: The netCDF Fortran 90 interface guide (2011)
The OpenUH Compiler Project (2005). http://www.cs.uh.edu/~openuh
Acknowledgements
The authors would like to thank TOTAL management for supporting this project and granting permission to submit this paper. Thanks are also due to the Parallel Software Technologies Laboratory (PSTL) at the University of Houston for providing valuable feedback on the proposed semantics. Finally, we would like to thank the participants in the Fortran standards working group for their discussions on additional parallel language features which have been valuable in our exploration of this topic.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Eachempati, D., Richardson, A., Jana, S. et al. A Coarray Fortran implementation to support data-intensive application development. Cluster Comput 17, 569–583 (2014). https://doi.org/10.1007/s10586-013-0302-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10586-013-0302-7