Introducing computational thinking, parallel programming and performance engineering in interdisciplinary studies

Abstract Nowadays, many fields of science and engineering are evolving through the joint contribution of complementary fields. Computer science, and especially High Performance Computing, has become a key factor in the development of many research fields, establishing a new paradigm called computational science. Researchers and professionals from many different fields require knowledge of High Performance Computing, including parallel programming, to develop fruitful and efficient work in their particular field. Therefore, at Universitat Autonoma of Barcelona (Spain), an interdisciplinary Master on “Modeling for Science and Engineering” was started 5 years ago to provide a thorough knowledge of the application of modeling and simulation to graduate students in different fields (Mathematics, Physics, Chemistry, Engineering, Geology, etc.). In this Master’s degree, “Parallel Programming” appears as a compulsory subject because it is a key topic for them. The concepts learned in this subject must be applied to real applications. Therefore, a complementary subject on “Applied Modeling and Simulation” has also been included. It is very important to show the students how to analyze their particular problems, think about them from a computational perspective and consider the related performance issues. So, in this paper, the methodology and the experience in introducing computational thinking, parallel programming and performance engineering in this interdisciplinary Master’s degree are shown. This overall approach has been refined through the Master’s life, leading to excellent academic results and improving the industry and students appraisal of this programme.

[1]  Cordelia Brown,et al.  Work in progress — Extending parallelism education to the first year with a bottom-up approach , 2011, 2011 Frontiers in Education Conference (FIE).

[2]  Anna Sikora,et al.  ELASTIC: A large scale dynamic tuning environment , 2014, Sci. Program..

[3]  Anna Sikora,et al.  AutoTune: A Plugin-Driven Approach to the Automatic Tuning of Parallel Applications , 2012, PARA.

[4]  James P. Lalley,et al.  The Learning Pyramid: Does It Point Teachers in the Right Direction?. , 2007 .

[5]  Ian T. Foster,et al.  Designing and building parallel programs - concepts and tools for parallel software engineering , 1995 .

[6]  G. Michael Schneider,et al.  Teaching computational science in a liberal arts environment , 1998, SGCS.

[7]  Pedro Hernández Hernández Construyendo el constructivismo: criterios para su fundamentación y su aplicación instruccional , 1997 .

[8]  Catherine Crockett,et al.  Computational science programs: The background research , 2012, 2012 Frontiers in Education Conference Proceedings.

[9]  Emilio Luque,et al.  Crowd dynamics modeling and collision avoidance with OpenMP , 2015, 2015 Winter Simulation Conference (WSC).

[10]  Arch D. Robison,et al.  Structured Parallel Programming: Patterns for Efficient Computation , 2012 .

[11]  Tomàs Margalef,et al.  MATE: Dynamic Performance Tuning Environment , 2004, Euro-Par.

[12]  Geoffrey C. Fox Parallel computing and education , 1993 .

[13]  Ami Marowka Think Parallel: Teaching Parallel Programming Today , 2008, IEEE Distributed Systems Online.

[14]  Allen D. Malony,et al.  The Tau Parallel Performance System , 2006, Int. J. High Perform. Comput. Appl..

[15]  Lubos Buzna,et al.  Self-Organized Pedestrian Crowd Dynamics: Experiments, Simulations, and Design Solutions , 2005, Transp. Sci..

[16]  Emilio Luque,et al.  Individual-oriented Model Crowd Evacuations Distributed Simulation , 2014, ICCS.

[17]  Bret W. Butler,et al.  Initialization of high resolution surface wind simulations using NWS gridded data , 2010 .

[18]  Julia S. Mullen,et al.  Analogies for teaching parallel computing to inexperienced programmers , 2006, ACM SIGCSE Bull..