Skip to main content
Log in

Fortress Abstractions in X10 Framework

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Fortress provides a nice set of abstractions used widely in scientific computing. The use of such abstractions enhances the productivity of programmers/users. Also, in scientific computations, boilerplate code has extensive usage. Keeping this in view, we embed Fortress abstractions in an X10 environment so that we can get better productivity without losing performance. In this paper, we transform Fortress into X10 through a transcompilation system. We describe compilation strategies for a few important constructs and discuss the performance of the generated X10 code with respect to the original Fortress code. The translated X10 code outperforms the original Fortress code with a maximum of 206x speedup achieved in the best case. The system also supports the multiresolution language approach that simplifies parallel programming by allowing domain scientists to write programs in the Fortress syntax that is closer to the mathematical notation. The translated X10 code, which can further be compiled to either C++ or Java, implicitly assures performance and may further be optimized for performance by utilizing the low-level features of X10 (or C++/Java).

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.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  1. Allen, E., Chase, D., Luchangco, V., Maessen, J.-W., Steele, G.L.: Object-oriented units of measurement. In: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA ’04), pp. 384–403. ACM, New York (2004)

  2. Allen, E., Culpepper, R., Nielsen, J.D., Rafkind, J., Ryu, S.: Growing a syntax. In: Proceedings of Workshop on Foundations of Object-Oriented Languages (2009)

  3. Bettini, L.: Implementing DSL with Xtext and Xtend, 2nd edn. Packt Publishing, New York (2016)

    Google Scholar 

  4. Birken, K.: Building code generators for DSLs using a partial evaluator for the Xtend Language. In: Proceedings of the 6th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation, Technologies for Mastering Change, Vol. 8802, pp. 407–424. Springer, New York (2014)

  5. Buckwalter, B.: Dimensional: statically checked physical dimensions for Haskell (2008)

  6. Callahan, D., Chamberlain, B.L., Zima, H.P.: The cascade high productivity language. In: 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS 2004), pp. 52–60. IEEE Computer Society (2004)

  7. Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. SIGPLAN Not. 40, 519–538 (2005)

    Article  Google Scholar 

  8. de Buffon, Georges-Louis Leclerc Comte: Essai da’rithme’tique morale, Histoire naturelle generale et particuliere, Supplement, 4, 685 (1777)

  9. Dunfield, J.: A unified system of type refinements, Ph.d thesis, Carnegie Mellon University (2007)

  10. Ebcioglu, K., Saraswat, V., Sarkar, V.: X10: Programming for hierarchical parallelism and non-uniform data access. In: International Workshop on Language Runtimes OOPSLA (2004)

  11. Emoto, K., Zhenjiang, H., Kakehi, K., Matsuzaki, K., Takeichi, M.: Generators-of-generators library with optimization capabilities in fortress. Euro-Par 2, 26–37 (2010). https://doi.org/10.1007/978-3-642-15291-7_4

    Article  Google Scholar 

  12. Fowler, M.: Domain-Specific Languages. Addison-Wesley, London (2010)

    Google Scholar 

  13. Jiang, L., Su, Z.: Osprey: a practical type system for validating dimensional unit correctness of C programs. In: 28th International Conference on Software Engineering (ICSE ’06), pp. 262–271. ACM, New York (2006)

  14. Kennedy, A.: Programming Languages and Dimensions. Ph.d Thesis, St Catharines College (1995)

  15. Kennedy, A.: Types for units-of-measure: theory and practice. In: Central European Functional Programming School, pp. 268–305. Springer, Berlin, Heidelberg (2009)

  16. McCalpin, J.D.: STREAM Benchmark. http://www.cs.virginia.edu/stream/

  17. Multiresolution Languages for Portable yet Efficient Parallel Programming, Bradford L. Chamberlain, whitepaper (2007)

  18. NAS Parallel Benchmarks. http://www.nas.nasa.gov/publications/npb.html

  19. Nurkiewicz, T.: Scala traits implementation and interoperability (2013)

  20. Ryu, S.: Parsing fortress syntax, In: 7th International Conference on Principles and Practice of Programming in Java (PPPJ ’09), pp. 76–84. ACM, New York (2009)

  21. Steinberg, D., et al.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley Professional, ISBN: 0321331885 (2009)

  22. Sun MicroSystems Inc.: The fortress language specification (2008)

  23. Voelter, M., et al.: DSL Engineering-Designing. Implementing and Using Domain-Specific Languages, 1–558 dslbook.org, ISBN: 978-1-4812-1858-0 (2013)

  24. Xtend Language homepage. http://www.xtend-lang.org

  25. Xtext homepage. http://www.eclipse.org/Xtext/

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anshu S. Anand.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

The authors’ names are listed in alphabetical order.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Anand, A.S., Sayani, K. & Shyamasundar, R.K. Fortress Abstractions in X10 Framework. Int J Parallel Prog 49, 911–933 (2021). https://doi.org/10.1007/s10766-021-00719-w

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-021-00719-w

Keywords

Navigation