Skip to main content
Log in

A Coarray Fortran implementation to support data-intensive application development

  • Original Paper
  • Published:
Cluster Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Notes

  1. 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

  1. Reid, J.: Coarrays in the next Fortran standard. Fortran Forum 29(2), 10–27 (2010). http://doi.acm.org/10.1145/1837137.1837138

    Article  Google Scholar 

  2. Numrich, R.W., Reid, J.: Co-array Fortran for parallel programming. Fortran Forum 17(2), 1–31 (1998)

    Article  Google Scholar 

  3. 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

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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

    Chapter  Google Scholar 

  7. Bonachea, D.: GASNet specification, v1.1. Tech. rep., Berkeley, CA, USA (2002)

  8. 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)

    Google Scholar 

  9. Baysal, E., Kosloff, D., Sherwood, J.: Reverse time migration. Geophysics 48(11), 1514–1524 (1983)

    Article  Google Scholar 

  10. Dussaud, E., Symes, W., Williamson, P., Lemaistre, L., Singer, P., Denel, B., Cherrett, A.: Computational strategies for reverse-time migration (2008)

  11. Fletcher, R., Du, X., Fowler, P.: Reverse time migration in tilted transversely isotropic (TTI) media. Geophysics 74(6), WCA179–WCA187 (2009)

    Article  Google Scholar 

  12. Billette, F., Brandsberg-Dahl, S.: The 2004 BP velocity benchmark. In: 67th Annual Internat. Mtg., EAGE, Expanded Abstracts, EAGE, p. B035 (2005)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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

    Chapter  Google Scholar 

  15. Barrett, R.: Co-array Fortran experiences with finite differencing methods. In: The 48th Cray User Group Meeting, Lugano, Italy (2006)

    Google Scholar 

  16. 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

    Chapter  Google Scholar 

  17. 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)

    Chapter  Google Scholar 

  18. 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)

  19. Reid, J.: Requirements for further coarray features—N1924 (2012)

  20. WG5: Draft TS 18508 additional parallel features in Fortran—N1983 (2013)

  21. ANSI, ISO: ISO/IEC 1539-1:2010 information technology—programming languages—Fortran—Part 1: base language (2010)

  22. Global Arrays Webpage. http://www.emsl.pnl.gov/docs/global/

  23. 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

    Article  Google Scholar 

  24. 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

    Google Scholar 

  25. Beddall, A.: The g95 project. http://www.g95.org/coarray.shtml

  26. Moene, T.: Towards an implementation of coarrays in GNU Fortran. http://ols.fedoraproject.org/GCC/Reprints-2008/moene.reprint.pdf

  27. Mellor-Crummey, J., Adhianto, L., Scherer, W.: A new vision for coarray Fortran. In: PGAS’09, Rice University (2009)

    Google Scholar 

  28. Nieplocha, J., Foster, I., Kendall, R.A.: ChemIO: high performance parallel I/O for computational chemistry applications (1998). http://www.mcs.anl.gov/chemio/

  29. Nieplocha, J., Foster, I.:. Disk resident arrays: an array-oriented I/O library for out-of-core computations

  30. T.H. Group: HDF5 user’s guide, release 1.6.6 (2007). http://hdfgroup.org/

  31. Trac—Integrated SCM & Project Management: Parallel nerCDF: a high performance API for NetCDF file access. http://trac.mcs.anl.gov/projects/parallel-netcdf

  32. Pincus, R., Rew, R.: The netCDF Fortran 90 interface guide (2011)

  33. The OpenUH Compiler Project (2005). http://www.cs.uh.edu/~openuh

Download references

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

Authors

Corresponding author

Correspondence to Deepak Eachempati.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-013-0302-7

Keywords

Navigation