1 Introduction

The computing world is changing. All devices – from mobile phones and personal computers to high-performance supercomputers – are becoming parallel. Computing resources at almost every scale are now available with cloud and distributed computing. The huge capacity of modern supercomputers allows complex problems, previously thought impossible, to be solved. The growth in computing performance is exceptional: with computing speed crossing the Petaflops line in 2008, Exaflops performance is expected by 2020. Supercomputer systems with record-breaking computing performance will be ultra-parallel (up to billions processing cores), containing different types of computing devices within a multi-level hierarchy: distributed computing systems, computing nodes with shared memory, multi-core processors, computing accelerators, SIMD and VLIW functional unites.

The efficient usage of all the opportunities offered by modern computing systems represents a global challenge for the entire range of computer sciences. Tackling the capacity of parallel computing systems, supercomputer technologies and distributed computing requires new knowledge, skills and abilities. The personnel training needed for this must be conducted across the entire range of specialists: from mathematicians and software developers to specialists in the most diverse areas of science, technology, industry and business. Since the number of these specialists is growing all the time, the education system needs to be modified likewise: while parallel computing issues were previously only taught in a master’s degree program, they are now included in bachelor degree curriculum. Knowledge and skills with a strong foundation in parallelism concepts are becoming key qualities for any modern specialist.

The importance of education in the area of parallel, distributed and supercomputer technologies is understood by the international education community. A number of large-scale projects can be cited which try to elaborate on and structure this area of education, offering recommendations on preparing teaching materials and providing examples of training courses. These projects include:

  • The Russian Supercomputing Education national project [1, 2].

  • Activities related to developing a computer science curricula (Computer Science 2013) by the ACM and IEEE-CS international communities [3].

  • The Curriculum Initiative on Parallel and Distributed Computing project, supported by NSF/IEEE-TCPP [4].

Important recommendations in this area are given as part of the SIAM-EESI project for developing education and research in the area of Computational Science and Engineering [5]. A number of other interesting findings is presented in [610].

This article is dedicated to presenting work performed in Russia to develop supercomputing education. It is rather an overview of our activities in this area than a set of concrete technical recipes which can be immediately incorporated into educational courses. Russia’s experience can come in handy for Universities from many countries, providing education in supercomputer technologies and high-performance computing, while discussing the results of these works can form grounds for developing extensive international cooperation.

2 Supercomputing Education Infrastructure

The scale of changes in the computing world dictates the need to introduce comparably major changes in the education system. The situation cannot be changed by introducing just one training course; progress needs to be achieved in many direction at once, by developing supercomputing education infrastructure. We have analyzed the global situation with education and identified several key objectives that form the basis for supercomputing education infrastructure in Russia. In this section we will describe the primary infrastructure elements and present specific examples of their practical implementation below.

The central part is a revision of existing and newly developing educational and methodological materials: curricula, training courses, textbooks, lab work and workshops. In some cases it is sufficient to mention the possibilities of parallel processing; other courses need a new section, e.g., on the parallel complexity of algorithms. In this regard, curricula need to be reviewed for all university natural sciences departments; many courses related to mathematical modeling and computing technologies must be rewritten from scratch.

The big question for this issue is what should we teach? What should be included in the new curricula? What ideas are fundamental and which ones are only needed to train experts? To find answers to these questions, a Body of Knowledge must be developed to help evaluate the scope and completeness of information on parallel computing and supercomputer technologies included in the study curricula.

Supercomputing education infrastructure must cover all target trainee groups: from schoolchildren and college students to teachers and staff of various organizations. At the same time, it is necessary to support various forms of education: classical university education, employee re-training and advanced training, distant education, internships, etc. It is important to remember that the balance between fundamental notions of parallel computing and the practical skills of working with parallel computing systems needs to be carefully weighed, depending on the target audience. It is vital to provide trainees with access to powerful supercomputer systems to conduct individual research projects in a highly parallel environment.

There needs to be close contact between universities, leading IT companies, research institutes and industry. This includes access to modern advanced technologies, science and actual industry tasks for teachers and students, as well as building up feedback in the form of a clear understanding of what is currently demanded of specialists in the labor market. These contacts can help in building a nationwide system of supercomputer conferences and youth schools, reflecting the interconnection between science, education and industry that is mandatory for the field.

To coordinate activities and ensure prompt interaction, it is important to establish a tight integration between universities: this will help to share and disseminate experience, build a single consolidated position and ensure reasonable specialization in the supercomputing education system. A consortium of universities will greatly simplify interaction with the government, ministries and foundations which determines the degree of state support and funding for all activities, and ultimately the scale and success of the intended changes.

A mandatory element of the infrastructure is international cooperation. It is important to analyze experience accumulated worldwide and adapt it to the national education system. It is equally important to work within the country: the changes are massive, they must be taken positively by the society, and that means all sorts of PR events to popularize supercomputer technologies must become a key element of the supercomputing education infrastructure.

A good example illustrating the specific steps taken to create supercomputing education infrastructure in Russia is the Supercomputing education national project described below in this paper.

3 Supercomputing Consortium of Russian Universities

One of the first steps in building supercomputing education infrastructure was to establish the Supercomputing Consortium of Russian Universities. This was initiated by four Russian State Universities: Moscow, Nizhny Novgorod, Tomsk and South Ural State, which formed the consortium on December 23\({}^{rd}\), 2008. Today, the consortium has 61 permanent or associated members, including 45 leading Russian universities. The consortium is chaired by academician V. A. Sadovnichy, rector of Moscow State University.

The goal of the Consortium is to promote supercomputer technologies throughout the higher education system in Russia, and using the capacity of this system to develop and actively integrate supercomputer technologies into Russian science and industry. Key activities by the Consortium include a review of the current state of supercomputing education in Russian universities, conducting scientific conferences and youth schools on supercomputing-related topics, organizing joint seminars with industry leaders, publishing educational and popular-science literature, among other things. Members of the Supercomputing Consortium of Russian Universities meet once or twice a year to discuss past results and outline future plans.

One of the main and most visible outcomes of the Consortium’s efforts in recent years is the implementation of the Supercomputing education national project.

4 Supercomputing Education National Project

The idea for this project was proposed to the President of the Russian Federation by V. A. Sadovnichy in 2009. The project was approved and implemented between 2010 and 2012 under the auspices of the President’s Committee for the Modernization and Economic Development of Russia. For the first time, the project formulated a program of activities to create an integral system of supercomputing education in Russia. The project involved about 600 people from 63 universities and total financing of about 8 million dollars over three years.

The key to successfully implementing all of the objectives for the Supercomputing education project was establishing a national system of Research and Education Centers for Supercomputing Technologies (REC SCT). The system includes 8 centers in 7 Russian federal districts.

The main objective of the Research and Education Centers is to organize work for building supercomputing education system in their respective federal districts. All Centers are based on large universities, members of the Supercomputing Consortium of Russian Universities, which have both experience in research and educational practice in the field of supercomputer technologies. The Central REC, which coordinates the entire system, is at Lomonosov Moscow State University.

Fundamental to developing scientific and methodological support is the Body of Knowledge in the area of parallel computing and supercomputer technologies. It includes the knowledge and competencies which students must attain to graduate from the respective departments or complete training at various special education forms. The main idea of the Body of Knowledge is to describe the subject area of supercomputers and parallel computing, to get a clear picture of what should be taught and how to organize the study process for each target group of students.

The Body structure was developed following the recommendations of international professional communities such as ACM and IEEE Computer Society, and suggestions made by the NSF/IEEE-TCPP project Curriculum Initiative on Parallel and Distributed Computing. The Body of Knowledge consists of five high-level chapters: the mathematical foundations of parallel computing; parallel computing system (computing basics); parallel programming technologies (software engineering basics); parallel algorithms; parallel computing, large tasks and specific subject areas. The chapters are then divided into sections, i.e. individual thematic modules within the subject area. Each section, then, consists of a set of topics representing the lowest level in the hierarchy. Each topic is accompanied by a mandatory/optional mark, complexity level and recommended amount of study time required to learn it. The Body of Knowledge covers more than 400 topics.

For this project, the Body of Knowledge formed the necessary foundation for a number of other tasks: developing a set of training courses, preparing the “Supercomputing education” book series, revising existing educational standards, reviewing curricula for a complete representation of supercomputer technologies, avoiding “blind spots” and the order of materials delivery – all these are easily assessed using the Body of Knowledge.

A unique book series titled “Supercomputing education” has been prepared and published. The series consists of 26 monographs, textbooks and study manuals written by leading Russian and foreign specialists on the main sections of the Body of Knowledge. Some of the books are dedicated to basic issues: computer architecture, programming technologies (MPI, OpenMP), GPU programming, and an introduction to parallel numerical methods and algorithm structure. Other books are dedicated to specific subject areas: supercomputer technologies in climate modeling, computational hydrodynamics, global optimization tasks, and number theory. Up to 50 sets of the “Supercomputing education series have been sent free of charge to 43 universities in Russia – a total of 31,500 books. In 2013, the “Supercomputing education series won the national “Book of the Year” contest in the nomination for “21st Century Textbook”. New publications are currently being added to the series.

A lot of work has gone into developing new and expanding existing training courses: materials for 50 courses covering all the key sections in the Body of Knowledge are provided in the public domain. Some of the courses are intended for bachelor’s degree studies, but most are targeted towards master’s and post-graduate students.

One of the most complex objectives of the project is the actual training of various target groups, which could only be successfully completed thanks to the newly established REC SCT system. Primary emphasis was placed on three areas: basic-level education, training the trainers and specialized education in specific areas through advanced training programs. Basic-level training covered all Russian federal districts, 60 universities in 34 cities, reaching a total of 3,269 attendees. In this case we did not set any strict requirements for the curricula and did not try to make them all the same: each university had the right to decide which supercomputer technologies they preferred. The only requirement was that the curriculum should be at least 72 h.

Unlike the basic-level education, training the trainers and specialized education were conducted on a REC SCT basis. A total of 453 staff from more than 50 Universities were trained during the project. More than 40 groups have been created for training using 15 advanced-level curricula, each at least 72 h (790 specialists in a total).

The national system of supercomputer-related scientific conferences and youth schools had a particularly positive impact. With Russia’s huge territory, it is not easy to move from one end to another; now six youth schools are operating on a regular basis from February to December in Arkhangelsk, Saint Petersburg, Moscow, Nizhny Novgorod, and Tomsk. This allows some convenience in choosing the time and place.

The system of conferences and schools is being actively developed. Last year, several conferences decided to merge into one large supercomputer forum “Russian Supercomputing Days” (RussianSCDays.org), which combines a scientific conference, exhibition, trainings and workshops, industrial and educational sessions, along with a number of specialized seminars and many other events. The summer school at Moscow State University has also evolved from its original format and was transformed into the Summer Supercomputing Academy. Each year the Academy selects more than 120 students and professors for two weeks of training on six programs. Some of the study programs are traditional (parallel programming technologies such as MPI, OpenMP, CUDA), while some require serious background (e.g., industrial mathematics and computational hydrodynamics). The MSU Summer Supercomputer Academy is increasingly becoming the focal point for all areas of Russia’s supercomputing education development: universities, the Russian Academy of Sciences, industry, leading IT companies, and even schools recently. The training at the Academy is free.

The examples above are just some of the outcomes of the Supercomputing education project. But even these can provide an idea of the huge amount of work that has been completed to date. Popularizing supercomputer technologies, knowledge quality and testing systems, interaction with foreign universities, institutes and scientists, education as part of an supercomputer technologies Internet-university, suggestions for modifying state standards – all of these activities plus many others are left outside the scope of this article. But all of these together helped lay the foundation for supercomputing education system in Russia. The system certainly needs more development and improvement to become sustainable over the long run. And some elements of this work are already visible today, as we will describe briefly in the next section.

5 Supercomputing Education in Russia’s Universities Today

The supercomputing education system in Russia, which has actively been developed in recent years, helped build a firm foundation for implementing various forms of education and study programs on supercomputer technologies at Russia’s leading universities. This is the main outcome of the national project, and this can be easily seen from the last overview Supercomputing Education in Russia made by the Supercomputing Consortium of Russian Universities. High-performance computing systems that have been installed at many universities throughout the country are of great support for implementing these programs. Besides Moscow and Nizhny Novgorod State Universities, powerful supercomputers are installed at Saint Petersburg Polytechnic University, South Ural and Tomsk State Universities, Moscow Physics and Technical Institute, and many others. Six of the top ten most powerful supercomputers in the CIS Top50 list (top50.supercomputers.ru) are installed at Russian universities.

Every university uses a common approach to organizing training in supercomputer technologies (SCT). Most of the preparation of SCT and high-performance computing specialists for professional work is conducted at faculties for computational mathematics and information science. These faculties implement most of the study programs, organize inter-disciplinary courses and programs, and carry out additional SCT education programs. Another recent trend is the establishment of departments working in supercomputer-related areas. The departments coordinate various areas of research and educational work on SCT and other disciplines at the departmental and university levels.

Traditionally, computational mathematics departments provide high-level training on the fundamentals of mathematics (continuous and discrete) and information science, setting the basis for a fundamental education in mathematical modeling using supercomputers. Examples of this approach in action include Moscow Physics and Technical Institute, Siberian Federal University, South Urals State University, and Saint Petersburg State Polytechnic University.

Bachelor degree programs for SCT specializations include general and special courses that comply with the Body of Knowledge developed as part of the Supercomputing education project. The regional specialization of universities is taken into account by including individual modules on SCT topics into general courses and selecting the topics for elective courses. For example, Novosibirsk State University has a “Theory of Parallel Processing” course taught as a basic course, along with specialized courses “Using supercomputers in mathematical modeling,” “Parallel computational methods,” and “Parallel computing technologies for mathematical modeling.”

The leading supercomputer universities are actively offering advanced training courses in SCT for university professors and academic staff. They provide regular training on specific additional education programs. The most common form of education is the 72-h professional advancement course. Examples of such programs include: “Advanced high-performance computing technologies and their application to modern biological and medical tasks” (MIPT), “High-performance computing using GPU” (Perm State National Research University), etc.

Constant coordination of supercomputing activities by universities at joint scientific seminars, curriculum discussion programs, youth schools and conferences allows Russian universities to significantly accelerate the implementation of supercomputer technologies into industry and research.

5.1 Supercomputing Education at Lomonosov Moscow State University

The Faculty of Computational Mathematics and Cybernetics (CMC) at Lomonosov Moscow State University is Russia’s leading education center offering training on fundamental research in the areas of applied mathematics, computational technologies and information science. The Faculty trains specialists on issues related to using computers to solve problems in various fields of science, industry and business. About 300 students are enrolled every year.

Studying the theoretical basics and practical applications of high-performance computing and supercomputer technologies is mandatory for all students. The training in this area is based on a one-semester lecture course for bachelor degree students “Supercomputers and Parallel Data Processing.” The main objective of the course is to show the close interrelation between parallel computing system architectures, parallel programming technologies and the parallel structure of programs and algorithms. From the second year onwards, students are distributed between departments, where they spend the next two years over specialized training and performing research. Further specialization continues as part of a two-year master’s degree program offered by various departments.

An in-depth study of supercomputer technologies is conducted at the Department on Supercomputers and Quantum Informatics of the CMC Faculty. Here students are taught parallel computing methods and facilities, parallel programming technologies, and high-performance cluster-based computations using GPUs. The Department provides the “Supercomputer systems and applications” training as part of a master’s degree program. A mandatory element in the Department training is a system of laboratory works offering practical support for supercomputer theory classes. To perform exercises and scientific research, students have an access the “Lomonosov” and Blue Gene/P supercomputers installed at MSU.

The Department cooperates with leading academic institutes and IT companies: institute of RAS, Intel, NVIDIA, T-Platforms, IBM, and others. One of the innovative forms of education introduced by the Department in recent years is the annual Summer Supercomputing Academy, which helps distribute the accumulated experience to higher education institutions throughout Russia.

This concept of education takes into account the growing demands of science and industry for highly skilled staff who are well-versed in modern computing technologies. It supports both general supercomputer training for specialists in mathematical fields, and specialized training for highly skilled specialists to work in new breakthrough areas which utilize high-performance computing systems. Further development of the education system must focus on strengthening the inter-disciplinary aspect of scientific research. For example, in recent years, the Department offers the “Supercomputers and Quantum Informatics” training course for all students of Moscow State University. The course is very popular among students, particularly in the natural sciences.

5.2 Supercomputing Education at the Lobachevsky Nizhny Novgorod State University

One key area of activity for Nizhny Novgorod State University is training and re-training specialists in supercomputer technologies and high-performance computing. NNSU offers bachelor’s and master’s degrees, post-graduate education, provides career advancement training to teachers from other universities, and organizes scientific and educational schools for young scientists and specialists. More than 300 people take part annually in various training, re-training and advanced training courses in SCT. More than 10 textbooks on parallel programming have been published.

NNSU plays an important role in developing the Body of Knowledge – a systemic foundation for developing SCT education and training programs. The “Fundamental information science and information technologies” course has been chosen as a pilot area in education, and 18 training courses have been expanded to take this change into account. Additional sections included in the updated course curricula are almost entirely compliant with the recommendations of the Body of Knowledge and recommendation made by the NSF/IEEE-TCPP project “Curriculum Initiative on Parallel and Distributed Computing” [4].

To evaluate the knowledge and skills learned, a set of 300 test questions was prepared on the topic of parallel and distributed computing. Students take tests before and after the study program, with the assignment for each student consisting of 28 to 40 questions. In the 2013–2014 academic year, average test scores increased from 23 % to 75 %. Testing helps evaluate the complexity of materials being studied, which can be used to identify the most difficult topics and improve the training courses accordingly. Traditionally, the complex topics for students are around the mathematical basics of supercomputer technologies and methods for assessing the efficiency of parallel computations.

To develop practical skills for applying parallel and distributed computing to specific tasks, students are provided test assignments of low to medium complexity. Assignment topics cover many sections of computational mathematics and computing, including matrix processing, integration, approximation of functions, data sorting, etc. By completing these assignments, students learn (or develop independently) parallel computing methods for various applications, write the necessary parallel codes, and set up computational experiments using supercomputer systems.

To prepare problem-oriented specialists (physicists, chemical engineers, biologists, etc.) who are capable of utilizing the capacity of supercomputer technologies to address tasks in their respective areas, NNSU has developed training modules that are common for all master’s degree programs in the physics and mathematics departments.

The principal feature of these modules is a correlation of the volume of studied materials with the applied profile of trained specialists. Sample demonstrations and practical assignments in the study modules have been prepared taking into account the students’ areas of specialization. These modules have been tested at NNSU and can be used at other universities.

6 Supercomputer Technologies and School Education

Speaking of establishing a sustainable supercomputing education system, we can’t leave out the issue of school education. Computers are everywhere, and parallelism is in every computing device including smartphones and tablet PCs. Even today’s schoolchildren, let alone future generations, will have to live in a massively parallel computing world. And, learning the basics should start at school. Moscow State University has been organizing excursions for over 500 schoolchildren to its supercomputer center each year. Kids are always impressed by the supercomputers, revealing a side of the computing world they never knew before. Even after a short explanation, they quickly begin to understand what these giants, occupying at least 1,000 m\(^2\) of floor space and weighing hundred tons, are all about. They understand that every supercomputer today is based on parallelism, which they currently have in their mobile devices. They also see that parallelism is not just here for the long term – it’s here to stay.

For the third year in a row, the MSU Summer Supercomputer Academy announced the “Parallel Computing Technologies in School” education program. It targets school teachers, mainly informatics teachers, who feel the promise behind this technology and want to learn the basics of parallel computing so they can include the relevant information in their school classes. There is high demand for this program. Today it isn’t just possible – it’s mandatory – that elements on parallel computing are included in school curriculum. Perhaps in the form of intuitive understanding, simple examples or visits to supercomputing centers – but kids must get their first understanding of parallelism during their school years – this is the main reason why this program is included in the Academy agenda. If you have more than one surname, please make sure that the Volume Editor knows how you are to be listed in the author index.

7 Conclusion

Comparing the original plans, expectations and intentions with the actual results obtained during the past few years, it is possible to assess how much of the plans were implemented, which lessons have been learned, what was completed and what was not, which steps were right and which objectives still require more work.

A definitely positive step in establishing a supercomputing education system in Russia was the creation of the Supercomputing Consortium of Russian Universities, which took place in 2008, and the national system of Research and Education Centers of Supercomputing Technologies. These structures made it possible to consolidate the academic community, propose and successfully complete the Supercomputing education national project, the results of which are currently used in the most natural sciences faculties across Russia. It was definitely the right decision to put special emphasis on training university teachers. Teachers are often busy, and many find it easier to stick with the materials they already have for their courses, rather than learning something new. But changes are extremely necessary in this area. The book series titled “Supercomputing education” became very helpful in organizing the education process: the series started in 2010 and is still evolving.

Developing the Body of Knowledge on Parallel Computing and Supercomputer Technologies had a significant effect, even if it clearly has not been used to its full potential. This is particularly important now, when education in this area is in its initial stages. Study materials must be presented in the right sequence, without omissions, in the right amount and considering the complexity of materials – this is the purpose of the Body of Knowledge. The first versions of the Body have been created, but the work cannot stop there: the area is dynamic, which must be reflected in the Body of Knowledge.

The experience obtained over the past few years clearly shows the importance of making management (from deans and rectors to ministry officials and ministers) aware of the need for such changes. Of course, a lot can be done at the teacher level, but management support takes this activity to a completely new level.

Computing technologies play an exceptionally important role in the modern industry, and engineering education requires drastic changes today. This is the area where the thesis “to out-compete is to out-compute” [11] becomes of paramount importance. That’s why it is so important to introduce supercomputer and parallel computing technologies into the engineering curricula. During the first stages, our primary focus was on more fundamental areas, but at the same time more than 40 agreements were signed between business enterprises and universities.

More attention should be paid to academic mobility. There are different scientific schools, different computing facilities, different subject areas and different training systems – to get the necessary knowledge, expand their outlook, and find their calling and a place in life, young people need to be given an opportunity to move between leading schools, universities, institutes, and training centers. We did not think of this before, but it needs to be considered in the future.

So far the capacity for distant education has not been fully realized. In some sense, online courses can cover some specific technological topics. But whether they can be used for large-scale training of really highly qualified specialists – remains to be seen. At the same time, this form of education does have its advantages, particularly in a geographically distributed country such as Russia.

Another serious issue is organizing practical implementation of parallel and supercomputer technologies. A careful selection of questions, examples, exercises, and practical computing tasks plays a very important role in this area. Parallelism and supercomputers must be used only where they are really needed. Why make a program parallel that takes 0.1 s to compute in serial mode? How much would a student understand about parallel computing while performing tasks on a serial machine? Without paying due attention to these questions at the start, you can destroy both the motivation and the training results.

Since recently, issues related to education in parallel computing and supercomputer technologies are being seriously considered by many organizations (IEEE, ACM, SIAM, Informatics Europe, etc.) and projects (PRACE, EESI, etc.). We hope that the experience of developing and implementing the basics of supercomputing education into the higher education system in Russia will be useful when implementing similar changes in other countries.

The results were obtained with the financial support of the Russian Science Foundation (agreement N14-11-00190).