Home Technology peripherals AI Turing Award winner Jack Dongarra: There is still a lot of room at the top of supercomputing

Turing Award winner Jack Dongarra: There is still a lot of room at the top of supercomputing

May 04, 2023 am 10:58 AM
calculate quantum

Super computers can be said to be the Olympic champions in scientific computing. Through numerical simulations, supercomputers enrich our understanding of the world: whether it’s the stars light-years away in the universe, Earth’s weather and climate, or how the human body works.

Jack Dongarra has been a driving force in high-performance computing for more than four decades. Earlier this year, the 2021 ACM A.M. Turing Award was awarded to Dongarra "for his pioneering contributions to numerical algorithms and tool libraries that have enabled high-performance computing software to keep pace with the exponential advances in hardware for more than four decades." .

The author of this article, Bennie Mols, met Dongarra during the 9th Heidelberg Laureate Forum in Germany in September and discussed the present and future of high-performance computing. Dongarra, 72, is a distinguished professor at the University of Tennessee and has been a distinguished researcher at the U.S. Department of Energy’s Oak Ridge National Laboratory since 1989. Bennie Mols is a science and technology writer based in Amsterdam, the Netherlands.

The following is the content of the interview

Q1: What has been your motivation for conducting scientific research over the past few decades?

A: My main area of ​​research is mathematics, especially numerical linear algebra. All my work stems from this. For subjects such as physics and chemistry that require calculations - especially solving systems of linear equations - software that can calculate answers is undoubtedly very important. At the same time, you must also ensure that the operation of the software is consistent with the architecture of the machine, so that you can truly obtain the high performance that the machine can achieve.

Q2: What are the most important requirements for software to run on supercomputers?

A: We hope that the calculation results of this software are accurate. We hope that the scientific community will use and understand this software and even contribute to its improvement. We want the software to perform well and be portable across different machines. We want the code to be readable and reliable. Ultimately, we want software to make the people who use it more productive.

Developing software that meets all these requirements is a non-trivial process. This level of engineering often has millions of lines of code, and about every 10 years we see some major changes in machine architecture. This will lead to the need to refactor both the algorithms and the software that embodies them. Software follows hardware, and there is still a lot of room at the top of supercomputing to achieve better machine performance.

Q3: What are the current developments in high-performance computing that excite you?

A: Our high-performance supercomputers are built on third-party components. For example, you and I can also buy high-end chips, but high-performance computers require a lot of them. Usually we use some accelerators in the form of GPUs on high-performance computers. We put multiple chip development boards on a rack, and many of these racks together form a supercomputer. The reason we use third-party components is because it's cheaper, but if you design a chip specifically to do scientific computing, you get a supercomputer with better performance, which is an exciting thought.

In fact, this is exactly what companies like Amazon, Facebook, Google, Microsoft, Tencent, Baidu and Alibaba are doing; they are making their own chips. They can do this because they have huge funds, whereas universities have limited funds and therefore unfortunately have to use third party products. This ties into another concern of mine: How do we keep talent in science, rather than seeing them go work for larger companies that pay better?

Q4: What other important developments are there for the future of high-performance computing?

A: There are indeed some important things. It’s clear that machine learning is already having a major impact on scientific computing, and this impact will only grow. I think of machine learning as a tool that helps solve problems that computational scientists want to solve.

This goes hand in hand with another important development. Traditionally, our hardware uses 64-bit floating point operations, so numbers are represented in 64 bits. However, if you use fewer bits, such as 32, 16, or even 8 bits, you can speed up the calculation. But by speeding up calculations, accuracy is lost. However, it seems that AI calculations can often be done with fewer bits, 16 or even 8 bits. This is an area that needs to be explored, and we need to find out where reducing bits works well and where it doesn't.

Another area of ​​research is about how to start with low-precision calculations, get an approximation, and then use higher-precision calculations to refine the results.

Q5: What is the power consumption of supercomputers?

A: Today’s best-performing supercomputers consume 20 or 30 megawatts to achieve exascale speeds. If everyone on Earth did one calculation every second, it would take more than four years to do what a very large-scale computer does in one second. Maybe within 20 years, we will reach the scale of zettaflop, which is 10 to the power of 21 floating point operations. However, power consumption can be a limiting factor. You would need a 100 or 200 megawatt machine, which is currently too energy-intensive.

Q6: How do you see the role of quantum computing in future high-performance computing?

A: I think the problems that quantum computing can solve are limited. It will not solve problems like three-dimensional partial differential equations, where we often use supercomputers, such as climate modeling.

In the future, we will build an integrated tool containing different types of calculation tools. We will have processors and accelerators, we will have tools to help with machine learning, we will most likely have devices to do neuromorphic computing in the manner of the brain, we will have optical computers, and in addition, we will have quantum computers to solve specific problems .

The above is the detailed content of Turing Award winner Jack Dongarra: There is still a lot of room at the top of supercomputing. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CUDA's universal matrix multiplication: from entry to proficiency! CUDA's universal matrix multiplication: from entry to proficiency! Mar 25, 2024 pm 12:30 PM

General Matrix Multiplication (GEMM) is a vital part of many applications and algorithms, and is also one of the important indicators for evaluating computer hardware performance. In-depth research and optimization of the implementation of GEMM can help us better understand high-performance computing and the relationship between software and hardware systems. In computer science, effective optimization of GEMM can increase computing speed and save resources, which is crucial to improving the overall performance of a computer system. An in-depth understanding of the working principle and optimization method of GEMM will help us better utilize the potential of modern computing hardware and provide more efficient solutions for various complex computing tasks. By optimizing the performance of GEMM

How to calculate addition, subtraction, multiplication and division in word document How to calculate addition, subtraction, multiplication and division in word document Mar 19, 2024 pm 08:13 PM

WORD is a powerful word processor. We can use word to edit various texts. In Excel tables, we have mastered the calculation methods of addition, subtraction and multipliers. So if we need to calculate the addition of numerical values ​​in Word tables, How to subtract the multiplier? Can I only use a calculator to calculate it? The answer is of course no, WORD can also do it. Today I will teach you how to use formulas to calculate basic operations such as addition, subtraction, multiplication and division in tables in Word documents. Let's learn together. So, today let me demonstrate in detail how to calculate addition, subtraction, multiplication and division in a WORD document? Step 1: Open a WORD, click [Table] under [Insert] on the toolbar, and insert a table in the drop-down menu.

How to count the number of elements in a list using Python's count() function How to count the number of elements in a list using Python's count() function Nov 18, 2023 pm 02:53 PM

How to use Python's count() function to calculate the number of an element in a list requires specific code examples. As a powerful and easy-to-learn programming language, Python provides many built-in functions to handle different data structures. One of them is the count() function, which can be used to count the number of elements in a list. In this article, we will explain how to use the count() function in detail and provide specific code examples. The count() function is a built-in function of Python, used to calculate a certain

Count the number of occurrences of a substring recursively in Java Count the number of occurrences of a substring recursively in Java Sep 17, 2023 pm 07:49 PM

Given two strings str_1 and str_2. The goal is to count the number of occurrences of substring str2 in string str1 using a recursive procedure. A recursive function is a function that calls itself within its definition. If str1 is "Iknowthatyouknowthatiknow" and str2 is "know" the number of occurrences is -3. Let us understand through examples. For example, input str1="TPisTPareTPamTP", str2="TP"; output Countofoccurrencesofasubstringrecursi

How to use the Math.Pow function in C# to calculate the power of a specified number How to use the Math.Pow function in C# to calculate the power of a specified number Nov 18, 2023 am 11:32 AM

In C#, there is a Math class library, which contains many mathematical functions. These include the function Math.Pow, which calculates powers, which can help us calculate the power of a specified number. The usage of the Math.Pow function is very simple, you only need to specify the base and exponent. The syntax is as follows: Math.Pow(base,exponent); where base represents the base and exponent represents the exponent. This function returns a double type result, that is, the power calculation result. Let's

Java program to calculate the area of ​​a triangle using determinants Java program to calculate the area of ​​a triangle using determinants Aug 31, 2023 am 10:17 AM

Introduction The Java program for calculating the area of ​​a triangle using determinants is a concise and efficient program that can calculate the area of ​​a triangle given the coordinates of three vertices. This program is useful for anyone learning or working with geometry, as it demonstrates how to use basic arithmetic and algebraic calculations in Java, as well as how to use the Scanner class to read user input. The program prompts the user for the coordinates of three points of the triangle, which are then read in and used to calculate the determinant of the coordinate matrix. Use the absolute value of the determinant to ensure the area is always positive, then use a formula to calculate the area of ​​the triangle and display it to the user. The program can be easily modified to accept input in different formats or to perform additional calculations, making it a versatile tool for geometric calculations. ranks of determinants

Python program to calculate the sum of the right diagonal elements of a matrix Python program to calculate the sum of the right diagonal elements of a matrix Aug 19, 2023 am 11:29 AM

A popular general-purpose programming language is Python. It is used in a variety of industries, including desktop applications, web development, and machine learning. Fortunately, Python has a simple and easy-to-understand syntax that is suitable for beginners. In this article, we will use Python to calculate the sum of the right diagonal of a matrix. What is a matrix? In mathematics, we use a rectangular array or matrix to describe a mathematical object or its properties. It is a rectangular array or table containing numbers, symbols, or expressions arranged in rows and columns. . For example -234512367574 Therefore, this is a matrix with 3 rows and 4 columns, expressed as a 3*4 matrix. Now, there are two diagonals in the matrix, the primary diagonal and the secondary diagonal

Java program example to calculate total score and percentage Java program example to calculate total score and percentage Sep 11, 2023 pm 06:01 PM

We will demonstrate how to calculate total scores and percentages using a Java program. Total score refers to the sum of all available scores, while the term percentage refers to the calculated score divided by the total score and multiplied by the resulting number 100. percentage_of_marks=(obtained_marks/total_marks)×100 Example 1 This is a Java program that demonstrates how to calculate total scores and percentages. //JavaProgramtodemonstratehowisTotalmarksandPercentagescalculatedimportjava.io.*;publicclassTotalMarks_

See all articles