Paul Messina, director of science for the Argonne Leadership Computing Facility (ALCF), discusses the primary objectives, curriculum and importance of the Argonne Training Program on Extreme-Scale Computing (ATPESC), now in its third year.
HPCwire: Can you give us an overview of the Argonne Training Program on Extreme-Scale Computing (ATPESC)?
Paul Messina: Absolutely, Tiffany. The ATPESC program provides those participating with intense hands-on training on the key skills, approaches and tools to design, implement, and execute computational science and engineering applications on current supercomputers and the HPC systems of the future.
We’ve found it to be the case that with the challenges posed by the architecture and software environments of today’s most powerful supercomputers, and even greater complexity coming in the future from next-generation and exascale systems, there is a great need for specialized, in-depth training for the computational scientists poised to facilitate breakthrough science and engineering using these HPC resources. So our program is very well-equipped to take on those challenges and address this training need, and is designed to fill the many gaps that exist in the training computational scientists typically receive through formal education or shorter courses.
During the two-weeks of the program there are many lectures and hands-on sessions. The participants have access to several of the world’s most powerful computers, and that is an important feature. Learning to carry out scientific computing on high-end systems requires hands-on use, just like one cannot learn how to ride a bicycle by reading a book about bicycle riding. The days are long: lectures start at 8:30 a.m. and computer exercises end around 9:30 p.m. Even during our nightly dinners there is a talk about some aspect of computing or innovative applications.
HPCwire: What inspired you to organize this program?
I observed that although computational approaches to tackling research problems has become increasingly common, university courses seldom cover many topics that have become extremely important, such as software engineering. Furthermore, supercomputer architectures feature hundreds of thousands of cores, multi-level memory hierarchies, and diverse networks connecting the nodes. Implementing applications on such systems involves dealing with issues that do not arise on the much smaller systems to which most people have access. For example, a straightforward implementation of a simple task such as input and output will be woefully slow and inefficient on today’s high-end systems.
There are workshops and short courses, typically 3-5 days, on individual topics, but few if any longer ones that expose the participants to most areas that come into play when one carries out computational science and engineering.
Therefore, I felt there was a gap in the training of most computational scientists early in their careers and I – in collaboration with many colleagues – decided to try to fill that gap.
HPCwire: What topics will the 2015 program cover and how has the curriculum evolved since it started in 2013?
Paul Messina: The core of the program will focus on programming methodologies that are effective across a variety of supercomputers and that are expected to be applicable to exascale systems. Multiple approaches will be covered, but the primary emphasis will be on unifying concepts and levels of abstraction that provide migration paths and performance portability among current and future architectures. Additional topics that we will cover include computer architectures, mathematical models and numerical algorithms, software engineering, approaches to building community codes for HPC systems, and methodologies/tools relevant for data-intensive (I dislike the big data label) applications.
The curriculum has been refined each year, not so much by introducing new topics as by emphasizing particular aspects or features. For example, we have always covered software engineering and approaches to building community codes, but in 2015 we will spend more time on performance portability across current architectures and to future generations of supercomputers. The computer architecture sessions now provide more information on the effects of hardware features on performance. Each year we also try to improve the exercises for hands-on sessions; they are an invaluable part of the training.
HPCwire: How do current trends in HPC – manycore processors, the parallelism mandate, architectural heterogeneity, etc. – affect your outreach and training efforts? Is HPC getting more difficult?
Paul Messina: Various forms of parallelism have been important for over three decades, but it is true that starting about 10 years ago, supercomputer architectures have become more complex and more difficult to use efficiently. In addition, because the top computers are much faster and have much more total memory than they have in the past, computational scientists are able to tackle more complex problems and they are more difficult to program. So, yes, I would say HPC is getting more difficult but on the plus side, in many research fields HPC enables advances that make the extra effort worthwhile.
HPCwire: Last year’s sessions were led by a roster of HPC luminaries, including Intel’s parallel programming guru James Reinders and TOP500 list cofounder Jack Dongarra. What can you tell HPCwire readers about the presenters for this year’s program?
Paul Messina: We are fortunate to be able to attract lecturers such as Reinders and Dongarra, both or whom will again participate, as well as many other leaders in the various fields that come into play in carrying out computational science and engineering. Almost all of last year’s instructors have already committed to ATPESC 2015. The 2014 schedule is on our website so one can get a good idea of the 2015 program, details of which will be posted in late March, at extremecomputingtraining.anl.gov.
Having such stellar lecturers not only provides excellent insights and knowledge to the participants, but also the opportunity to meet them, ask questions, and often examine a problem side by side.
HPCwire: Who will benefit most from this training and how does the application and selection process work?
Paul Messina: The doctoral students, postdocs, and computational scientists early in their careers who participated in the first two offerings all found the program to be very useful, and they comprise the bulk of the participants. A few participants each year were research scientists with as much as 20 years seniority at national or industrial research laboratories; they also learned many things they found useful for their own research interests.
The program is designed for researchers who plan to (or already have) careers that involve computational science and engineering research that requires high-end computing and who have already programmed (not merely used) a non-trivial application on a fairly large parallel computer. Applicants submit a one to two page statement of why they want to attend the program and a description of their computing experience, a curriculum vita, and one letter of recommendation from an advisor or supervisor.
The selection of participants is carried out by a committee of approximately eight people, and we look for strong evidence that the applicant has enough parallel programming expertise on fairly large systems. Otherwise, they will not benefit from the program, and would lack the grounding. Each year of the program so far we have found that many more applicants than we have room for are very well qualified, making our final selection process extremely challenging.
Instructions for applying to the program can be found at our website referenced earlier, and the deadline for applying is April 3, 2015. Also, there are no fees required for participation, and domestic airfare, meals, and lodging are all provided.
HPCwire: The Argonne Training Program on Extreme-Scale Computing is in its third year, but I understand that Argonne’s summer program can be traced back to the 1980s. What does this say about the spirit of outreach at Argonne and in the HPC community?
Paul Messina: That’s right, in the early days of commercial parallel computers, in the early 1980s, Argonne offered many short courses on parallel programming. We had acquired several parallel computers with different architectures to start doing research on parallel computing and many people became interested in learning to program them. Having real parallel machines was a novelty. Four of our scientists – Rusty Lusk and Ross Overbeek (both of whom are still at Argonne), Dan Sorensen (now at Rice University), and Jack Dongarra – started teaching courses on programming and on parallel algorithms and found themselves doing it over and over, there was such demand for them. A fair number of senior people in the worldwide computational community spent part of their summers at Argonne and were exposed to parallel computing for the first time.
Argonne has a culture of openness and collaboration with colleagues worldwide, so outreach comes naturally. I have worked at and visited other research labs and universities and I would say that the HPC community largely has the same spirit.
HPCwire: What advice would you give to someone who is considering a career in HPC?
My first advice would be to pursue it. It is a field with myriad opportunities, one can contribute to advances that benefit society, that enhance our knowledge of our universe, and that result in better products. My second piece of advice would be to learn as much math as possible and to deeply study computer architectures and software tools, so that you really understand how computers and software work. “No black boxes” would be one way of putting it. That is a mighty high goal and I realize few people can reach it, I certainly can’t, but it is the approach of trying to understand why a calculation behaves as it does that I would urge people to follow.