Abstract
The iCetus tool is a new interactive parallelizer, providing users with a range of capabilities for the source-to-source transformation of C programs using OpenMP directives in shared memory machines. While the tool can parallelize code fully automatically for non-experts, power users can steer the parallelization process in a menu-driven way. iCetus which is still in its early stages of development is implemented as a web application for easy access, eliminating the need for user installation and updates. The tool supports the user through all phases of the program transformation process, including program analyses, parallelization, and optimization. The first phase includes both static and dynamic analyses, pointing out loops that represent performance bottlenecks and should be improved. The parallelization phase offers diverse options to cater to different levels of user skills. By displaying compiler analyses results in an interactive manner, iCetus supports the user in pinpointing parallelization impediments and resolving them. During the optimization phase, the programmer can apply successive improvements by editing the program, evaluating the performance, and comparing it to that obtained by previous program versions. iCetus also serves as a learning tool to help users understand important program patterns and their parallelization. In this way, it also helps train the user in writing code that likely yields better performance.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Balasundaram, V., Kennedy, K., Kremer, U., McKinley, K., Subhlok, J.: The parascope editor: an interactive parallel programming tool. In: Proceedings of the 1989 ACM/IEEE Conference on Supercomputing, Supercomputing 1989, pp. 540–550 (1989). https://doi.org/10.1145/76263.76323
Dave, C., Bae, H., Min, S.J., Lee, S., Eigenmann, R., Midkiff, S.: Cetus: a source-to-source compiler infrastructure for multicores. Computer 42(12), 36–42 (2009). https://doi.org/10.1109/MC.2009.385
Giordano, M., Furnari, M.M.: HTGviz: a graphic tool for the synthesis of automatic and user-driven program parallelization in the compilation process. In: Polychronopoulos, C., Fukuda, K.J.A., Tomita, S. (eds.) ISHPC 1999. LNCS, vol. 1615, pp. 312–319. Springer, Heidelberg (1999). https://doi.org/10.1007/BFb0094932
Liao, S.W., Diwan, A., Bosch, R.P., Ghuloum, A., Lam, M.S.: SUIF Explorer: an interactive and interprocedural parallelizer. ACM SIGPLAN Not. 34(8), 37–48 (1999). https://doi.org/10.1145/329366.301108
Mishra, V., Aggarwal, S.K.: ParTool: a feedback-directed parallelizer. In: Temam, O., Yew, P.-C., Zang, B. (eds.) APPT 2011. LNCS, vol. 6965, pp. 157–171. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24151-2_12
Polychronopoulos, C.D., Girkar, M.B., Haghighat, M.R., Lee, C.L., Leung, B., Schouten, D.: PARAFRASE-2: an environment for parallelizing, partitioning, synchronizing, and scheduling programs on multiprocessors. Int. J. High Speed Comput. 01(01), 45–72 (1989). https://doi.org/10.1142/S0129053389000044
Quinlan, D., Liao, C.: The ROSE source-to-source compiler infrastructure. In: Cetus Users and Compiler Infrastructure Workshop, in conjunction with PACT 2011, p. 1. Citeseer (2011)
Wilson, R.P., et al.: The SUIF compiler system: a parallelizing and optimizing research compiler. ACM SIGPLAN Not. (1994)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
Barakhshan, P., Eigenmann, R. (2022). iCetus: A Semi-automatic Parallel Programming Assistant. In: Li, X., Chandrasekaran, S. (eds) Languages and Compilers for Parallel Computing. LCPC 2021. Lecture Notes in Computer Science, vol 13181. Springer, Cham. https://doi.org/10.1007/978-3-030-99372-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-030-99372-6_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-99371-9
Online ISBN: 978-3-030-99372-6
eBook Packages: Computer ScienceComputer Science (R0)