A Tool for Interactive Parallelization

"Tell me, I'll forget, Show me, I may remember, Involve me, I'll understand." - Confucius This proverb describes the essence of our paper and the motivation behind the development of the Interactive Parallelization Tool (IPT) that can transform serial applications into multiple parallel variants. The end-users of IPT must have an understanding of the basic concepts involved in parallel programming (e.g., data distribution and data gathering). After developing an understanding of the basic parallel programming concepts, IPT can be used by its target audience (domain-experts and students) to semi-automatically generate parallel programs using multiple parallel programming paradigms (MPI, OpenMP, and CUDA), and learn about these paradigms through observation and comparison. This IPT-based personalized learning approach complements the traditional methods of learning and training that usually emphasize the syntax and semantics of one or more programming standards. The main benefit of IPT is that it provides a jumpstart to the domain-experts in using modern HPC platforms for their research and development needs, and hence lowers the adoption barriers to HPC.

[1]  Marjan Mernik,et al.  A high-level framework for parallelizing legacy applications for multiple platforms , 2013, XSEDE.

[2]  Christina Freytag,et al.  Using Mpi Portable Parallel Programming With The Message Passing Interface , 2016 .

[3]  P. F. Leggett,et al.  CAPTools-semiautomatic parallelisation of mesh based computational mechanics codes M.Cross, C.S.Ierotheou, S.P.Johnson and P.F.Leggett , .

[4]  John A. Hole,et al.  Nonlinear high‐resolution three‐dimensional seismic travel time tomography , 1992 .

[5]  Marjan Mernik,et al.  Raising the level of abstraction for developing message passing applications , 2010, The Journal of Supercomputing.

[6]  Bruno R. Preiss,et al.  Building parallel applications using design patterns , 2002 .

[7]  Leonie Kohl,et al.  Parallel Programming In C With Mpi And Open Mp , 2016 .

[8]  Ronald H. Perrott,et al.  Parallel programming , 1988, International computer science series.

[9]  Ken Kennedy,et al.  The parascope editor: an interactive parallel programming tool , 1989, Supercomputing '89.

[10]  J. Vidale Finite‐difference calculation of traveltimes in three dimensions , 1990 .

[11]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[12]  Jeffrey C. Carver,et al.  Understanding the High-Performance-Computing Community: A Software Engineer's Perspective , 2008, IEEE Software.

[13]  Cos S. Ierotheou,et al.  CAPTools - Semiautomatic Parallelization of Mesh-Based Computational Mechanic Codes , 1994, HPCN.

[14]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[15]  D. Birchall,et al.  Computational Fluid Dynamics , 2020, Radial Flow Turbocompressors.

[16]  Elizabeth Ritz,et al.  Integrating complementarity into the 2D displacement discontinuity boundary element method to model faults and fractures with frictional contact properties , 2012, Comput. Geosci..

[17]  Fethi A. Rabhi,et al.  A skeleton-based approach for the design and implementation of distributed virtual environments , 2000, 2000 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[18]  Ajit Singh,et al.  Design patterns for parallel computing using a network of processors , 1997, Proceedings. The Sixth IEEE International Symposium on High Performance Distributed Computing (Cat. No.97TB100183).