Abstract
This paper introduces Gotcha, a function wrapping interface and library for HPC tools. Many HPC tools, and performance analysis tools in particular, rely on function wrapping to integrate with applications. But existing mechanisms, such as LD_PRELOAD on Linux, have limitations that lead to tool instability and complexity. Gotcha addresses the limitations in existing mechanisms, provides a programmable interface for HPC tools to manage function wrapping, and supports function wrapping across multiple tools. In addition, this paper introduces the idea of interface-independent function wrapping, which makes it possible for tools to wrap arbitrary application functions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Arm map. https://www.arm.com/products/development-tools/server-and-hpc/forge/map
Totalview for HPC. https://www.roguewave.com/products-services/totalview
Adhianto, L., et al.: HPCTOOLKIT: tools for performance analysis of optimized parallel programs. Concurrency Comput. Pract. Experience 22(6), 685–701 (2010). https://doi.org/10.1002/cpe.v22:6. http://hpctoolkit.org
Atzeni, S., et al.: Archer: effectively spotting data races in large OpenMP applications. In: 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 53–62, May 2016. https://doi.org/10.1109/IPDPS.2016.68
Bernat, A.R., Miller, B.P.: Anywhere, any-time binary instrumentation. In: Proceedings of the 10th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools, PASTE 2011, pp. 9–16. ACM, New York (2011). https://doi.org/10.1145/2024569.2024572
Carns, P., et al.: Understanding and improving computational science storage access through continuous characterization. Trans. Storage 7(3), 8:1–8:26 (2011). https://doi.org/10.1145/2027066.2027068
Drepper, U.: How to write shared libraries. https://www.akkadia.org/drepper/dsohowto.pdf
Galarowiz, J.: Open—speedshop. https://openspeedshop.org
Gamblin, T.: MPI wrapper generator, for writing PMPI tool libraries. https://github.com/LLNL/wrap
Gyllenhaal, J., Gamblin, T., Bertsch, A., Musselman, R.: Enabling high job throughput for uncertainty quantification on BG/Q. In: IBM HPC Systems Scientific Computing User Group, (ScicomP 2014) (2014)
Protze, J., Hilbrich, T., Schulz, M., de Supinski, B.R., Nagel, W.E., Mueller, M.S.: MPI runtime error detection with must: a scalable and crash-safe approach. In: 2014 43rd International Conference on Parallel Processing Workshops, pp. 206–215, September 2014. https://doi.org/10.1109/ICPPW.2014.37
Schulz, M., de Supinski, B.R.: PNMPI tools: a whole lot greater than the sum of their parts. In: Proceedings of the 2007 ACM/IEEE Conference on Supercomputing, SC 2007, pp. 1–10, November 2007. https://doi.org/10.1145/1362622.1362663
Schulz, M.: Extending and updating the tool interfaces in MPI: a request for feedback. In: Scalable Tools Workshop 2018 (2018)
Shende, S.S., Malony, A.D.: The TAU parallel performance system. Int. J. High Perform. Comput. Appl. 20(2), 287–311 (2006). https://doi.org/10.1177/1094342006064482
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Poliakoff, D., LeGendre, M. (2019). Gotcha: An Function-Wrapping Interface for HPC Tools. In: Bhatele, A., Boehme, D., Levine, J., Malony, A., Schulz, M. (eds) Programming and Performance Visualization Tools. ESPT ESPT VPA VPA 2017 2018 2017 2018. Lecture Notes in Computer Science(), vol 11027. Springer, Cham. https://doi.org/10.1007/978-3-030-17872-7_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-17872-7_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-17871-0
Online ISBN: 978-3-030-17872-7
eBook Packages: Computer ScienceComputer Science (R0)