In July 2022, the School of Computer Science and Technology of the Huazhong University of Science and Technology (HUST) and the University of Sydney (USYD) jointly offered the "Parallel Programming Practice of HUST-USYD Summer School" to provide students with opportunities and resources to learn parallel programming for free. This three-week course was jointly organized by the Office of International Affairs of HUST and the School of Computer Science and Technology of HUST and was taught by Professor Zhou Bingbing from the School of Computer Science and Technology of USYD. This course is free for all students in HUST, and a total of more than 120 students have applied for the course. In order to ensure the quality of the class, more than 50 students from various majors in HUST were selected to become the first batch of students of "Parallel Programming Practice of HUST-USYD Summer School". Finally, 35 students successfully completed the course and got a certificate of completion.
The "Parallel Programming Practice of HUST-USYD Summer School" aims to implement the spirit of accelerating the expansion of education and opening up to the outside world, promote the construction of a "first-rate university", strengthen the exchange and interaction between HUST and world-renowned universities, and expand the international academic vision of our students. Parallel computing is one of the most outstanding and representative inventions in the computer field. Many practical computing problems, such as big data analysis and deep AI learning, cannot be solved without parallel computing. Improvement and optimization in parallel algorithms and programming are promoted by the parallel thinking methods and skills that are essential to those who are engaged in computer technology and application. This course introduced how to use OpenMP and MPI to program and optimize the performance of shared-storage and distributed-storage parallel computer systems, and organized a series of simple parallel programming experiments so that students can have a deep understanding of the concept of parallel computing and optimization on the basis of mastering the basic programming methods.
On the morning of July 30, the "Parallel Programming Practice of HUST-USYD Summer School" officially ended and successfully held the closing ceremony. The ceremony was presided over by Professor Lu Feng of the School of Computer Science and Technology. Professor Tan Zhihu, Deputy Dean of the School of Computer Science and Technology, attended the ceremony and delivered a speech. On behalf of the School of Computer Science and Technology, Tan first thanked Professor Zhou Bingbing of the University of Sydney for his hard work in this summer course, and also thanked Professor Lu Feng and the teaching assistants for their efforts. He pointed out that many computing problems in the current computer field cannot be solved without parallel processing and parallel computing, and the college attaches great importance to the construction of parallel programming courses. The school has been offering the only "Parallel Programming Principle and Practice" course in China for 10 years, and this course is an international model course. This summer school course is an important extension and supplement to the "Parallel Programming Principle and Practice" course, aiming to broaden students' international academic horizons and promote the construction of "first-rate discipline". Mr.Tan hopes that everyone can learn something, learn to use it, continue to work hard in future study and life, and apply the idea of parallel programming to practice. Finally, Tan thanked Professor Zhou again for his hard work and expressed his hope for more achievements in international cooperation with the University of Sydney in the future.
Speech by Professor Tan Zhihu, Deputy Dean of the School of Computer Science and Technology, at the closing ceremony
Later, Ms.Lu Feng presided over the certificate-issuing ceremony. She first presented the certificate to Professor Zhou Bingbing for his hard work in teaching this course and expressed her gratitude to Mr.Zhou on behalf of the Office of International Affairs and the School of Computer Science and Technology of HUST. Then she announced the list of students who had finished the course, congratulated them on finishing the practical course, and invited all the teachers and students to take a photo together. Finally, she specially awarded honorary certificates to Zhu Youheng, Lu Runyu, and Chen Xianyang, expressing her recognition for their outstanding performance in the course.
Speech by Ms. Lu
Issue certificates to outstanding students
Finally, Professor Zhou Bingbing from the School of Information Technology of the University of Sydney delivered a speech at the closing ceremony. He thanked the Office of International Affairs and the School of Computer Science and Technology of HUST for their great support to this summer program, and also expressed his thanks to Ms. Lu Feng and the teaching assistants for their hard work and preparation behind the scenes. Professor Zhou said that in the teaching and learning process, students of HUST are very excellent. He praised and thanked the students of this summer school, and wished them all the best and a bright future!
Speech by Mr. Zhou
Summary and insights of outstanding students in this course
Lu Runyu:
My name is Lu Runyu, and I am from the Class of 2001 of the Undergraduate Experimental Program for Exemplary Engineer Education of the School of Computer Science and Technology. It's my great honor to have this opportunity to attend Mr. Zhou's parallel programming class. Mr. Zhou has a well-thought-out teaching method and is very careful about the course arrangement. He strictly selected some realistic scenarios and programming examples (such as removing the common but unreasonable summation problem of the Fibonacci sequence) for us to learn and told the teaching assistant Mr. Sun Yifei to send us the revised courseware in advance for preview. Mr. Zhou took our ability into full consideration, starting from the basics such as memory access. When we had questions, he was very patient in giving us answers. At the same time, Mr. Zhou paid great attention to the development of our coding ability, leaving a very challenging programming task for each class and letting us take the initiative to present our program before the next class. He would put forward suggestions for improvement of our program and would praise and encourage the highlights of the program. What's more, he also participated in the programming himself and shared his very well-written program with us for us to study and learn. Mr. Zhou repeatedly emphasized the development of a big-picture view of parallel thinking. Three weeks ago, I knew little about the concept of parallel programming, but now I am able to independently write some complex programs with full consideration of data allocation and computational overhead. Thank you very much for Mr. Zhou's wonderful explanation and encouragement, which has greatly improved my understanding of parallel programming!
Chen Xianyang:
In the summer of 2022, I had the honor to attend the "Parallel Programming Practice of HUST-USYD Summer School". In nearly 20 days, I learned the thinking algorithm of parallel computing through online lectures and offline independent practice and benefited a lot from the concrete programming practice process.
I don't think the idea of parallel computing is something new and hard to understand, but rather an idea that comes naturally to people, guided by the fact that "the real world is highly parallel". Parallel computing is not only a way to improve the efficiency of computing, but also reflects the principle of universal connection between things. Therefore, compared with serial computing, parallel computing is more suitable for modeling, simulating, and understanding various complex phenomena in the real world, which is also one of the reasons why I am interested in parallel computing.
In this course, Mr.Zhou's explanation impressed me deeply. When learning Task Construct of OpenMP, Mr. Zhou said that there are many examples on the Internet that use recursion Fibonacci sequence python as an example to explain the feature of the task. Although the explanation was detailed and correct, it did not fully reflect the advantages of parallel computing and generate much unnecessary resource consumption. What's more, it has been solved with a time complexity of O(log n) under the condition of serial computing. Therefore, the Fibonacci sequence is not suitable as an example of parallel computing learning. This reminds me that while designing parallel algorithms is important, examining the parallelism of the problem is also of paramount importance. How to choose the most efficient algorithm to solve the corresponding problem is the problem that the programmer should first consider. In the process of explaining the actual practice of parallel programming, Mr. Zhou cultivated students' thinking all the time. I admire his professionalism and dedication.
Although the course has come to an end, I will never forget this unforgettable learning time. I would like to thank Mr. Zhou for his earnest and responsible teaching and the hard work of the teaching assistants, and I hope that such exchange activities will continue to be held.
Zhu Youheng:
During the summer course on parallel programming, I had the honor to hear the parallel programming algorithm and programming practice taught by Mr. Zhou, which gave me an initial glimpse into the vast, deep, and fascinating field of parallel computing. From the design of a parallel algorithm to the practice of parallel programming from shallow to deep, we experienced a charm different from the traditional serial algorithm. On shared storage machines, we learned about openMP and were exposed to tools like "load balancing" and "loop unrolling" that can fully display the performance of the hardware and the idea of using "cache line" to realize "cache hit" and even using "register" to get data quickly. In the course, we got a glimpse of how people can use the parallel performance of multiple cores efficiently. In addition to shared storage machines, we were also exposed to parallel computing for the implementation of a computer cluster with MPI and witnessed some of the similarities and differences between the two.
After so many classes, I deeply felt that Mr. Zhou is knowledgeable and kind. He gave us step-by-step and detailed lectures on parallel algorithm design and program optimization. Mr. Zhou focused on the teaching of principles and the student's personal practice, which enabled us to absorb and summarize knowledge points through practice and benefited us a lot.
Photo of outstanding students of this course and teachers
Photo of all students of this course and teachers