Introduction to Volume 10 Issue 1
Nitin Sukhijapp. 1–3
A brief introduction to this issue of the Journal of Computational Science Education from the guest editor.
pp. 1–3
A brief introduction to this issue of the Journal of Computational Science Education from the guest editor.
pp. 4–11
https://doi.org/10.22369/issn.2153-4136/10/1/1@article{jocse-10-1-1, author={Marcelo Ponce and Erik Spence and Ramses van Zon and Daniel Gruner}, title={Bridging the Educational Gap between Emerging and Established Scientific Computing Disciplines}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={4--11}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/1} }
In this paper we describe our experience in developing curriculum courses aimed at graduate students in emerging computational fields, including biology and medical science. We focus primarily on computational data analysis and statistical analysis, while at the same time teaching students best practices in coding and software development. Our approach combines a theoretical background and practical applications of concepts. The outcomes and feedback we have obtained so far have revealed several issues: students in these particular areas lack instruction like this although they would tremendously benefit from it; we have detected several weaknesses in the formation of students, in particular in the statistical foundations but also in analytical thinking skills. We present here the tools, techniques and methodology we employ while teaching and developing this type of courses. We also show several outcomes from this initiative, including potential pathways for fruitful multi- disciplinary collaborations.
pp. 12–15
https://doi.org/10.22369/issn.2153-4136/10/1/2@article{jocse-10-1-2, author={Erica D. Hummel and S. Chantal E. Stieber}, title={Student-led Computational Inorganic Chemistry Research in a Classroom Setting}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={12--15}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/2} }
Advanced computational inorganic methods were introduced as course-based undergraduate research experiences (CUREs) through use of the National Science Foundation's Extreme Science and Engineering Discovery Environment (NSF XSEDE). The ORCA ab initio quantum chemistry program allowed students to conduct independent research projects following in-class lectures and tutorials. Students wrote publication-style papers and conducted peer review of classmates' papers to learn about the full scientific process.
pp. 16–20
https://doi.org/10.22369/issn.2153-4136/10/1/3@article{jocse-10-1-3, author={Eric Coulter and Jodie Sprouse and Resa Reynolds and Richard Knepper}, title={Extending XSEDE Innovations to Campus Cyberinfrastructure - The XSEDE National Integration Toolkit}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={16--20}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/3} }
XSEDE Service Providers (SPs) and resources have the benefit of years of testing and implementation, tuning and configuration, and the development of specific tools to help users and systems make the best use of these resources. Cyberinfrastructure professionals at the campus level are often charged with building computer resources which are compared to these national-level resources. While organizations and companies exist that guide cyberinfrastructure configuration choices down certain paths, there is no easy way to distribute the long-term knowledge of the XSEDE project to campus CI professionals. The XSEDE Cyberinfrastructure Resource Integration team has created a variety of toolkits to enable easy knowledge and best-practice transfer from XESDE SPs to campus CI professionals. The XSEDE National Integration Toolkit (XNIT) provides the software used on most XSEDE systems in an effort to propagate the best practices and knowledge of XSEDE resources. XNIT includes basic tools and configuration that make it simpler for a campus cluster to have the same software set and many of the advantages and XSEDE SP resource affords. In this paper, we will detail the steps taken to build such a library of software and discuss the challenges involved in disseminating awareness of toolkits among cyberinfrastructure professionals. We will also describe our experiences in updating the XNIT to be compatible with the OpenHPC project, which forms the basis of many new HPC systems, and appears situated to become the de-facto choice of management software provider for many HPC centers.
pp. 21–23
https://doi.org/10.22369/issn.2153-4136/10/1/4@article{jocse-10-1-4, author={Chris Fietkiewicz}, title={Student Outcomes in Parallelizing Recursive Matrix Multiply}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={21--23}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/4} }
Students in a course on high performance computing were assigned the task of parallelizing an algorithm for recursive matrix multiplication. The objectives of the assignment were to: (1) design a basic approach for incorporating parallel programming into a recursive algorithm, and (2) optimize the speedup. Pseudocode was provided for recursive matrix multiplication, and students were required to first implement a serial version before implementing a parallel version. The parallel version had the following requirements: (1) use OpenMP to perform multithreading, and (2) use exactly 4 threads, where each thread computes one quadrant of the array product. Using a class size of 23 students, including undergraduate and graduate, approximately 70% of the students designed valid parallel solutions, and 13% achieved the optimal speedup of 4x. Common errors included recursively creating excessive threads, failing to parallelize all possible mathematical operations, and poor use of compiler directives for OpenMP.
pp. 24–31
https://doi.org/10.22369/issn.2153-4136/10/1/5@article{jocse-10-1-5, author={Marcelo Ponce and Erik Spence and Ramses van Zon and Daniel Gruner}, title={Scientific Computing, High-Performance Computing and Data Science in Higher Education}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={24--31}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/5} }
We present an overview of current academic curricula for Scientific Computing, High-Performance Computing and Data Science. After a survey of current academic and non-academic programs across the globe, we focus on Canadian programs and specifically on the education program of the SciNet HPC Consortium, using its detailed enrollment and course statistics for the past six to seven years. Not only do these data display a steady and rapid increase in the demand for research-computing instruction, they also show a clear shift from traditional (high performance) computing to data- oriented methods. It is argued that this growing demand warrants specialized research computing degrees.
pp. 32–39
https://doi.org/10.22369/issn.2153-4136/10/1/6@article{jocse-10-1-6, author={Lizanne DeStefano and Jung Sun Sung}, title={Initial impact of Evaluation in Blue Waters Community Engagement Program}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={32--39}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/6} }
The external evaluation activities in the first three years of the Blue Waters Community Engagement program for graduate fellows and undergraduate interns are described in this study. Evaluators conducted formative and summative evaluations to acquire data from the participants at various stages during this period. Details regarding the evaluation methodology, implementation, results, information feedback process, and the overall program impact based on these evaluation findings are outlined here. Participants in both groups were selected from a variety of different scientific backgrounds and their high performance computing expertise also varied at the outset of the program. Implementation challenges stemming from these issues were identified through the evaluation, and accommodations were made in the initial phases of the program. As a result, both the graduate fellowship and undergraduate internship programs were able to successfully overcome many of the identified problems by the end of the third year. The evaluation results also show the significant impact the program was able to make on the future careers of the participants.
pp. 40–47
https://doi.org/10.22369/issn.2153-4136/10/1/7@article{jocse-10-1-7, author={Dhruva K. Chakravorty and Marinus "Maikel" Pennings and Honggao Liu and Zengyu "Sheldon" Wei and Dylan M. Rodriguez and Levi T. Jordan and Donald "Rick" McMullen and Noushin Ghaffari and Shaina D. Le}, title={Effectively Extending Computational Training Using Informal Means at Larger Institutions}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={40--47}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/7} }
Short courses offered by High Performance Computing (HPC) centers offer an avenue for aspiring Cyberinfrastructure (CI) professionals to learn much-needed skills in research computing. Such courses are a staple at universities and HPC sites around the country. These short courses offer an informal curricular model of short, intensive, and applied micro-courses that address generalizable competencies in computing as opposed to content expertise. The degree of knowledge sophistication is taught at the level of below a minor and the burden of application to domain content is on the learner. Since the Spring 2017 semester, Texas A&M University High Performance Research Computing (TAMU HPRC) has introduced a series of interventions in its short courses program that has led to a 300% growth in participation. Here, we present the strategies and best practices employed by TAMU HPRC in teaching short course modules. We present a longitudinal report that assesses the success of these strategies since the Spring semester of 2017. This data suggests that changes to student learning and a reimagination of the tiered instruction model widely adopted at institutions could be beneficial to student outcomes.
pp. 48–52
https://doi.org/10.22369/issn.2153-4136/10/1/8@article{jocse-10-1-8, author={Maciej Cytowski and Luke Edwards and Mark Gray and Christopher Harris and Karina Nunez and Aditi Subramanya}, title={HPC Education and Training: an Australian Perspective}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={48--52}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/8} }
The Pawsey Supercomputing Centre has been running a variety of education, training and outreach activities addressed to all Australian researchers for a number of years. Based on experience and user feedback we have developed a mix of on-site and online training, roadshows, user forums and hackathon-type events. We have also developed an open repository of materials covering different aspects of HPC systems usage, parallel programming techniques as well as cloud and data resources usage. In this paper, we will share our experience in using different learning methods and tools to address specific educational and training purposes. The overall goal is to emphasise that there is no universal learning solution, instead, various solutions and platforms need to be carefully selected for different groups of interest.
pp. 53–60
https://doi.org/10.22369/issn.2153-4136/10/1/9@article{jocse-10-1-9, author={Ramses van Zon and Marcelo Ponce and Erik Spence and Daniel Gruner}, title={Trends in Demand, Growth, and Breadth in Scientific Computing Training Delivered by a High-Performance Computing Center}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={53--60}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/9} }
We analyze the changes in the training and educational efforts of the SciNet HPC Consortium, a Canadian academic High Performance Computing center, in the areas of Scientific Computing and High-Performance Computing, over the last six years. Initially, SciNet offered isolated training events on how to use HPC systems and write parallel code, but the training program now consists of a broad range of workshops and courses that users can take toward certificates in scientific computing, data science, or high-performance computing. Using data on enrollment, attendence, and certificate numbers from SciNet's education website, used by almost 1800 users so far, we extract trends on the growth, demand, and breadth of SciNet's training program. Among the results are a steady overall growth, a sharp and steady increase in the demand for data science training, and a wider participation of 'non-traditional' computing disciplines, which has motivated an increasingly broad spectrum of training offerings. Of interest is also that many of the training initiatives have evolved into courses that can be taken as part of the graduate curriculum at the University of Toronto.
pp. 61–66
https://doi.org/10.22369/issn.2153-4136/10/1/10@article{jocse-10-1-10, author={Dhruva K. Chakravorty and Marinus "Maikel" Pennings and Honggao Liu and Zengyu "Sheldon" Wei and Dylan M. Rodriguez and Levi T. Jordan and Donald "Rick" McMullen and Noushin Ghaffari and Shaina D. Le and Derek Rodriquez and Crystal Buchanan and Nathan Gober}, title={Evaluating Active Learning Approaches for Teaching Intermediate Programming at an Early Undergraduate Level}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={61--66}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/10} }
There is a growing need to provide intermediate programming classes to STEM students early in their undergraduate careers. These efforts face significant challenges due to the varied computing skill-sets of learners, requirements of degree programs, and the absence of a common programming standard. Instructional scaffolding and active learning methods that use Python offer avenues to support students with varied learning needs. Here, we report on quantitative and qualitative outcomes from three distinct models of programming education that (i) connect coding to hands- on "maker" activities; (ii) incremental learning of computational thinking elements through guided exercises that use Jupyter Notebooks; and (iii) problem-based learning with step-wise code fragments leading to algorithmic implementation. Performance in class activities, capstone projects, in-person interviews, and participant surveys informed us about the effectiveness of these approaches on student learning. We find that students with previous coding experience were able to rely on broader skills and grasp concepts faster than students who recently attended an introductory programming session. We find that, while makerspace activities were engaging and explained basic programming concepts, they lost their appeal in complex programming scenarios. Students grasped coding concepts fastest using the Jupyter notebooks, while the problem-based learning approach was best at having students understand the core problem and create inventive means to address them.
pp. 67–73
https://doi.org/10.22369/issn.2153-4136/10/1/11@article{jocse-10-1-11, author={Julia Mullen and Weronika Filinger and Lauren Milechin and David Henty}, title={The Impact of MOOC Methodology on the Scalability, Accessibility and Development of HPC Education and Training}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={67--73}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/11} }
This work explores the applicability of Massively Open Online Courses (MOOCs) for scaling High Performance Computing (HPC) training and education. Most HPC centers recognize the need to provide their users with HPC training; however, the current educational structure and accessibility prevents many scientists and engineers who need HPC knowledge and skills from becoming HPC practitioners. To provide more accessible and scalable learn- ing paths toward HPC expertise, the authors explore MOOCs and their related technologies and teaching approaches. In this paper the authors outline how MOOC courses differ from face-to-face training, video-capturing of live events, webinars, and other established teaching methods with respect to pedagogical design, development issues and deployment concerns. The work proceeds to explore two MOOC case studies, including the design decisions, pedagogy and delivery. The MOOC development methods discussed are universal and easily replicated by educators and trainers in any field; however, HPC has specific technical needs and concerns not encountered in other online courses. Strategies for addressing these HPC concerns are discussed throughout the work.
pp. 74–80
https://doi.org/10.22369/issn.2153-4136/10/1/12@article{jocse-10-1-12, author={Prentice Bisbal}, title={Training Computational Scientists to Build and Package Open-Source Software}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={74--80}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/12} }
High performance computing training and education typically emphasizes the first-principles of scientific programming, such as numerical algorithms and parallel programming techniques. How- ever, many computational scientists need to know how to compile and link to applications built by others. Likewise, those who create the libraries and applications need to understand how to organize their code to make it as portable as possible and package it so that it is straightforward for others to use. These topics are not currently addressed by the current HPC education or training curriculum and users are typically left to develop their own approaches. This work will discuss observations made by the author over the last 20 years regarding the common problems encountered in the scientific community when developing their own codes and building codes written by other computational scientists. Recommendations will be provided for a training curriculum to address these shortcomings.
pp. 81–87
https://doi.org/10.22369/issn.2153-4136/10/1/13@article{jocse-10-1-13, author={Jinsil Hwaryoung Seo and Michael Bruner and Austin Payne and Nathan Gober and Donald "Rick" McMullen and Dhruva K. Chakravorty}, title={Using Virtual Reality to Enforce Principles of Cybersecurity}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={81--87}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/13} }
The Cyberinfrastructure Security Education for Professionals and Students (CiSE-ProS) virtual reality environment is an exploratory project that uses engaging approaches to evaluate the impact of learning environments produced by augmented reality (AR) and virtual reality (VR) technologies for teaching cybersecurity concepts. The program is steeped in well-reviewed pedagogy; the refinement of the educational methods based on constant assessment is a critical factor that has contributed to its success. In its current implementation, the program supports undergraduate student education. The overarching goal is to develop the CiSE-ProS VR program for implementation at institutions with low cyberinfrastructure adoption where students may not have access to a physical data center to learn about the physical aspects of cybersecurity.
pp. 88–89
https://doi.org/10.22369/issn.2153-4136/10/1/14@article{jocse-10-1-14, author={Julian Kunkel and Kai Himstedt and Nathanael H\"{u}bbe and Hinnerk St\"{u}ben and Sandra Schr\"{o}er and Michael Kuhn and Matthias Riebisch and Stephan Olbrich and Thomas Ludwig and Weronika Filinger and Jean-Thomas Acquaviva and Anja Gerbes and Lev Lafayette}, title={Towards an HPC Certification Program}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={88--89}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/14} }
The HPC community has always considered the training of new and existing HPC practitioners to be of high importance to its growth. This diversification of HPC practitioners challenges the traditional training approaches, which are not able to satisfy the specific needs of users, often coming from non-traditionally HPC disciplines, and only interested in learning a particular set of competences. Challenges for HPC centres are to identify and overcome the gaps in users' knowledge, while users struggle to identify relevant skills. We have developed a first version of an HPC certification pro- gram that would clearly categorize, define, and examine competences. Making clear what skills are required of or recommended for a competent HPC user would benefit both the HPC service providers and practitioners. Moreover, it would allow centres to bundle together skills that are most beneficial for specific user roles and scientific domains. From the perspective of content providers, existing training material can be mapped to competences allowing users to quickly identify and learn the skills they require. Finally, the certificates recognized by the whole HPC community simplify inter-comparison of independently offered courses and provide additional incentive for participation.
pp. 90–92
https://doi.org/10.22369/issn.2153-4136/10/1/15@article{jocse-10-1-15, author={Chris Fietkiewicz}, title={Potential Influence of Prior Experience in an Undergraduate-Graduate Level HPC Course}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={90--92}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/15} }
A course on high performance computing (HPC) at Case Western Reserve University included students with a range of technical and academic experience. We consider these experiential differences with regard to student performance and perceptions. The course relied heavily on C programming and multithreading, but one third of the students had no prior experience with these techniques. Academic experience also varied, as the class included 3rd and 4th year undergraduates, master's students, PhD students, and a non- degree student. Results indicate that student performance did not depend on technical experience. However, average overall performance was slightly higher for graduate students. Additionally, we report on students' perceptions of the course and the assigned work.
pp. 93–99
https://doi.org/10.22369/issn.2153-4136/10/1/16@article{jocse-10-1-16, author={Xi Chen and Gregory S. Gutmann and Joe Bungo}, title={Deep Learning by Doing: The NVIDIA Deep Learning Institute and University Ambassador Program}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={93--99}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/16} }
Over the past two decades, High-Performance Computing (HPC) communities have developed many models for delivering education aiming to help students understand and harness the power of parallel and distributed computing. Most of these courses either lack a hands-on component or heavily focus on theoretical characterization behind complex algorithms. To bridge the gap between application and scientific theory, NVIDIA Deep Learning Institute (DLI) (nvidia.com/dli) has designed an on-line education and training platform that helps students, developers, and engineers solve real-world problems in a wide range of domains using deep learning and accelerated computing. DLI's accelerated computing course content starts with the fundamentals of accelerating applications with CUDA and OpenACC in addition to other courses in training and deploying neural networks for deep learning. Advanced and domain-specific courses in deep learning are also available. The online platform enables students to use the latest AI frameworks, SDKs, and GPU-accelerated technologies on fully-configured GPU servers in the cloud so the focus is more on learning and less on environment setup. Students are offered project-based assessment and certification at the end of some courses. To support academics and university researchers teaching accelerated computing and deep learning, the DLI University Ambassador Program enables educators to teach free DLI courses to university students, faculty, and researchers.
pp. 100–106
https://doi.org/10.22369/issn.2153-4136/10/1/17@article{jocse-10-1-17, author={Linh B. Ngo and Jeff Denton}, title={Using CloudLab as a Scalable Platform for Teaching Cluster Computing}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={100--106}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/17} }
A significant challenge in teaching cluster computing, an advanced topic in the parallel and distributed computing body of knowledge, is to provide students with an adequate environment where they can become familiar with real-world infrastructures that embody the conceptual principles taught in lectures. In this paper, we de- scribe our experience setting up such an environment by leveraging CloudLab, a national experimentation platform for advanced computing research. We explored two approaches in using CloudLab to teach advanced concepts in cluster computing: direct deployment of virtual machines (VMs) on bare-metal nodes and indirect deployment of VMs inside a CloudLab-based cloud.
pp. 107–107
https://doi.org/10.22369/issn.2153-4136/10/1/18@article{jocse-10-1-18, author={Eric Coulter and Richard Knepper and Jeremy Fischer}, title={Programmable Education Infrastructure: Cloud resources as HPC Education Environments}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={107--107}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/18} }
Cloud computing is growing area for educating students and performing meaningful scientific research. The challenge for many educators and researchers is knowing how to use some of the unique aspects of computing in the cloud. One key feature is true elastic computing — resources on demand. The elasticity and programmability of cloud resources make them an excellent tool for educators who require access to a wide range of computing environments. In the field of HPC education, such environments are an absolute necessity, and getting access to them can create a large burden on the educators above and beyond designing content. While cloud resources won't replace traditional HPC environments for large research projects, they are an excellent option for providing both user and administrator education on HPC environments. The highly configurable nature of cloud environments allows educators to tailor the educational resource to the needs of their attendees, and provide a wide range of hands-on experiences. In this demo, we'll show how the Jetstream cloud environment can be used to provide training for both new HPC administrators and users, by showing a ground-up build of a simple HPC system. While this approach uses the Jetstream cloud, it is generalizable across any cloud provider. We will show how this allows an educator to tackle everything from basic command-line concepts and scheduler use to advanced cluster-management concepts such as elasticity and management of scientific software.
pp. 108–110
https://doi.org/10.22369/issn.2153-4136/10/1/19@article{jocse-10-1-19, author={Osni A. Marques and David E. Bernholdt and Elaine M. Raybourn and Ashley D. Barker and Rebecca J. Hartman-Baker}, title={The HPC Best Practices Webinar Series}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={108--110}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/19} }
In this contribution, we discuss our experiences organizing the Best Practices for HPC Software Developers (HPC-BP) webinar series, an effort for the dissemination of software development methodologies, tools and experiences to improve developer productivity and software sustainability. HPC-BP is an outreach component of the IDEAS Productivity Project [4] and has been designed to support the IDEAS mission to work with scientific software development teams to enhance their productivity and the sustainability of their codes. The series, which was launched in 2016, has just presented its 22nd webinar. We summarize and distill our experiences with these webinars, including what we consider to be "best practices" in the execution of both individual webinars and a long-running series like HPC-BP. We also discuss future opportunities and challenges in continuing the series.