Abstract
As future computing hardware progresses towards extreme-scale technology, new challenges arise for addressing heterogeneous compute and memory resources, for providing application resilience in the presence of more frequent failures, and for working within strict energy constraints. While C++ has gained popularity in recent years within the HPC community, some concepts of object-oriented program design may be at odds with the techniques we use to address the challenges of extreme-scale computing. In this work, we focus on the challenges related to using aggregate data structures that include pointer values within a programming model where the runtime may frequently relocate data, and traditional serialization techniques are not practical. We propose and evaluate a marshalled encoding for relocatable data blocks, and present a C++ library and other tools to simplify the work of the application programmer developing new applications or porting existing applications to such emerging programming models.
- B. Acun, A. Gupta, N. Jain, A. Langer, H. Menon, E. Mikida, X. Ni, M. Robson, Y. Sun, E. Totoni, L. Wesolowski, and L. Kale. Parallel Programming with Migratable Objects: Charm++ in Practice. In SC14: International Conference for High Performance Computing, Networking, Storage and Analysis, pages 647–658, Nov. 2014. Google Scholar
Digital Library
- S. Amarasinghe, D. Campbell, W. Carlson, A. Chien, W. Dally, E. Elnohazy, R. Harrison, W. Harrod, J. Hiller, S. Karp, C. Koelbel, D. Koester, P. Kogge, J. Levesque, D. Reed, R. Schreiber, M. Richards, A. Scarpelli, J. Shalf, A. Snavely, and T. Sterling. ExaScale Software Study: Software Challenges in Extreme Scale Systems, 2009. http://citeseerx.ist.psu.edu/viewdoc/summary?Google Scholar
- M. Bauer, S. Treichler, E. Slaughter, and A. Aiken. Legion: Expressing Locality and Independence with Logical Regions. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, SC ’12, pages 66:1–66:11, Los Alamitos, CA, USA, 2012. IEEE Computer Society Press. ISBN 978-1-4673-0804-5. 2389086. Google Scholar
Digital Library
- cereal. cereal - a c++11 library for serialization. GitHub.com, 2013. http://uscilab.github.io/cereal/.Google Scholar
- B. Chapman, T. Curtis, S. Pophale, S. Poole, J. Kuehn, C. Koelbel, and L. Smith. Introducing OpenSHMEM: SHMEM for the PGAS Community. In Proceedings of the Fourth Conference on Partitioned Global Address Space Programming Model, PGAS’10, pages 2:1–2:3, New York, NY, USA, 2010. ACM. ISBN 978-1-4503-0461-0. Google Scholar
Digital Library
- P. Charles, C. Grothoff, V. A. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an Object-Oriented Approach to Non-Uniform Cluster Computing. In Proceedings of the Twentieth Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA ’05, pages 519–538, Oct. 2005. Google Scholar
Digital Library
- H. C. Edwards, C. R. Trott, and D. Sunderland. Kokkos: Enabling manycore performance portability through polymorphic memory access patterns. Journal of Parallel and Distributed Computing, 74(12):3202– 3216, 2014. Google Scholar
Digital Library
- I. Gaztanaga. Boost Interprocess Library. Boost.org, 2005. http: //www.boost.org/libs/interprocess/.Google Scholar
- J. R. Hammond, S. Ghosh, and B. M. Chapman. Implementing Open-SHMEM Using MPI-3 One-Sided Communication. In Proceedings of the First Workshop on OpenSHMEM and Related Technologies. Experiences, Implementations, and Tools - Volume 8356, OpenSHMEM 2014, pages 44–58, New York, NY, USA, 2014. Springer-Verlag New York, Inc. Google Scholar
Digital Library
- T. Heller. Removal of Boost.Serialization. Mailing list announcement (gmane.comp.lib.hpx.devel), Apr. 2015. http://thread.gmane.org/gmane. comp.lib.hpx.devel/196.Google Scholar
- R. D. Hornung and J. A. Keasler. The RAJA Poratability Layer: Overview and Status. Technical Report LLNL-TR-661403, Lawrence Livermore National Laboratory, Sept. 2014.Google Scholar
Cross Ref
- I. Karlin, J. Keasler, and R. Neely. LULESH 2.0 Updates and Changes. Technical Report LLNL-TR-641973, Aug. 2013.Google Scholar
Cross Ref
- LibTooling. LibTooling. Clang 3.9 documentation, 2016. http: //clang.llvm.org/docs/LibTooling.html.Google Scholar
- T. G. Mattson, R. Cledat, V. Cavé, V. Sarkar, Z. Budimli´c, S. Chatterjee, J. Fryman, I. Ganev, R. Knauerhase, M. Lee, B. Meister, B. Nickerson, N. Pepperling, B. Seshasayee, S. Tasirlar, J. Teller, and N. Vrvilo. The Open Community Runtime: A runtime system for extreme scale computing. In 2016 IEEE High Performance Extreme Computing Conference (HPEC), pages 1–7, Sept. 2016.Google Scholar
Cross Ref
- Message Passing Interface Forum. MPI: A Message-Passing Interface Standard Version 3.1, June 2015. http://mpi-forum.org/docs/.Google Scholar
- MSDN. Based Pointers (C++). MSDN Library, 2008. https://msdn. microsoft.com/en-us/library/57a97k4e.aspx.Google Scholar
- OCR. The Open Community Runtime. Modelado.org, 2014. https: //xstackwiki.modelado.org/OCR.Google Scholar
- S. Olivier, J. Huan, J. Liu, J. Prins, J. Dinan, P. Sadayappan, and C.-W. Tseng. UTS: An Unbalanced Tree Search Benchmark. In Proceedings of the 19th International Conference on Languages and Compilers for Parallel Computing, LCPC’06, pages 235–250, Berlin, Heidelberg, 2007. Springer-Verlag. ISBN 978-3-540-72520-6. Google Scholar
Digital Library
- OpenSHMEM.org. OpenSHMEM: Application Programming Interface, Version 1.3, Feb. 2016. http://www.openshmem.org/site/Specification/.Google Scholar
- E. Porter, K. Knobe, and J. Feo. Experience Porting LULESH to CnC. In CnC’14: The Sixth Annual Concurrent Collections Workshop, Sept. 2014.Google Scholar
- R. Ramey. Boost Serialization Library. Boost.org, 2002. http: //www.boost.org/libs/serialization/.Google Scholar
- H. Shan, B. Austin, N. J. Wright, E. Strohmaier, J. Shalf, and K. Yelick. Accelerating applications at scale using one-sided communication. In Proceedings of the Conference on Partitioned Global Address Space Programming Models (PGAS’12), 2012.Google Scholar
- S. Treichler, M. Bauer, and A. Aiken. Realm: An Event-based Lowlevel Runtime for Distributed Memory Architectures. In Proceedings of the 23rd International Conference on Parallel Architectures and Compilation, PACT ’14, pages 263–276, New York, NY, USA, 2014. Google Scholar
Digital Library
- ACM. ISBN 978-1-4503-2809-8.Google Scholar
- P. Ullrich, G. Jost, B. A. Lelbach, and H. Johansen. Exascale-Ready Programming Models for Climate. In Workshop on Advancing Xcutting Ideas for Computational Climate Science, AXICCS ’16, Jan. 2016.Google Scholar
- P. A. Ullrich. A global finite-element shallow-water model supporting continuous and discontinuous elements. Geoscientific Model Development, 7(6):3017–3035, 2014.Google Scholar
Cross Ref
- UPC Consortium. UPC language specifications v1.2. Technical Report LBNL-59208, Lawrence Berkeley National Laboratory, 2005.Google Scholar
Cross Ref
- Y. Zheng, A. Kamil, M. B. Driscoll, H. Shan, and K. Yelick. UPC++: a PGAS extension for C++. In Parallel and Distributed Processing Symposium, 2014 IEEE 28th International, pages 1105–1114. IEEE, 2014. Google Scholar
Digital Library
Index Terms
A marshalled data format for pointers in relocatable data blocks
Recommendations
A marshalled data format for pointers in relocatable data blocks
ISMM 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on Memory ManagementAs future computing hardware progresses towards extreme-scale technology, new challenges arise for addressing heterogeneous compute and memory resources, for providing application resilience in the presence of more frequent failures, and for working ...
A case study on alternate representations of data structures in XML
DocEng '05: Proceedings of the 2005 ACM symposium on Document engineeringXML provides a universal and portable format for document and data exchange. While the syntax and specification of XML makes documents both human readable and machine parsable, it is often at the expense of efficiency when representing simple data ...
Instant pickles: generating object-oriented pickler combinators for fast and extensible serialization
OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applicationsAs more applications migrate to the cloud, and as "big data" edges into even more production environments, the performance and simplicity of exchanging data between compute nodes/devices is increasing in importance. An issue central to distributed ...






Comments