Application of High Performance Computing in Biochemical Process Simulation
Release date:2024-06-12
Challenges of High Performance Computing in Biochemical Process Simulation
Ge Wei said that in the past, these processes were mainly simulated through experiments, but now with the development of high-performance computing, some work can be done by means of calculation. But there is still a long way to go to solve it entirely by calculation.
First, people in the application field need to have a deep understanding of the underlying hardware architecture. As machines get bigger and bigger, especially with the advent of technologies like GPUs, people in the application space have to understand machines and more of the underlying requirements. In the past, you only need to learn a high-level language and understand the algorithm. Now, the more important question is "how to calculate fast". In this way, when using high-performance computing, you must not understand the architecture of the underlying hardware, so as to make the written program more suitable for this hardware architecture. Moreover, we cannot consider only one factor, but need to explore various influencing factors through long-term accumulation.
At the same time, the establishment of micro-level simulation model is also a very important issue. Ge Wei said that micro-level simulation has a big problem in the model. If the model is reasonable, the calculation result will be correct. How to establish the correct model is not a problem of the computer itself, but people in the application field need to consider. Therefore, people in our application field still have a lot of work to do. At the same time, how the model has enough accuracy is also a very important aspect. For example, to solve the general flow problem, the NS equation is correct, but is the algorithm able to calculate a large enough scale? Especially in high-performance computing, a large number of parallel calculations are used. In the past, it may be very efficient in serial, but after parallel, its efficiency will drop immediately. In turn, the slower serial method may be a good method instead, which requires some changes in programming thinking.
In addition, the contradiction between efficiency and versatility is a very important aspect. The simulation of academic reactions and chemical processes actually contains a variety of different algorithms. In this field, there are already many different machine requirements. Therefore, in fact, it does not mean that we need to use a certain type of specific machine for the calculation of chemical engineering. I believe the same is true for other fields. One field involves different algorithms.
From this perspective, it is more important to break the domain concept and consider the underlying hardware from the characteristics of the algorithm itself. For example, solving equations is an algorithm, and solving particle motion is an algorithm. Different algorithms should be considered from this perspective, what special hardware should be used, and how these methods are coupled to solve various application problems.
Different algorithms require different hardware, but it is impossible to provide a system for each algorithm, so it is necessary to find a balance between generality and efficiency. At present, in many cases, the contradiction between efficiency and versatility is still quite prominent, and it is very difficult to use it anywhere and want to be efficient.
On the one hand, let the software be as versatile as possible, on the other hand, in terms of efficiency, for the hardware designed by the software, there should be a special design as much as possible to improve its efficiency, so that the contradiction between efficiency and versatility can be solved relatively well. For example, the previous flow problem was solved by equations, which is now converted into particle solution. For example, for many systems, particles and fluids can be solved by particle method. In the past, I was equivalent to decoupling two methods, but now I can use the same method to solve them. At this time, the difficulty and parallelism of algorithm design are improved. Of course, this is not a panacea, but when you encounter a problem, you may need to think of such unconventional solutions.
How does HPC go in the future? Hybrid computing improves coupling efficiency
When talking about the outlook for the future, Ge Wei said that the hybrid computing-Heterogeneous structure is currently a more significant direction, can play the strengths of different hardware, for different software to improve the efficiency after coupling.
On the other hand, everyone should invest in software development. Ge Wei believes that China's economy is developing rapidly. Buying some hardware, buying some GPU or supercomputing equipment is not a particularly big problem. Relatively speaking, the investment in software development is not particularly sufficient.
In addition, how to ensure a mechanism, so that everyone has a very long time, stable to develop software, are very critical. Software development is a long-term investment to get better results, but now most of the work, we are willing to support some writing papers, or build some hardware things.
Lab Planning: Achieving the best fit in software and hardware iterations
Ge Wei also introduced some plans for the laboratory in the future. He said that he hopes to achieve the best cooperation through iterative improvement between software and hardware. "We are still mainly doing some application software development, focusing on applications in the near future. As the application deepens, some new requirements will be put forward for the hardware, according to these hardware requirements, and then cooperate with some other units to consider how to build a new generation of hardware equipment, from hardware to software, software to hardware, so that each other constantly iterates, and finally achieves an optimal fit."
The specific best hardware architecture needs to be explored slowly. However, Ge Wei said that the application requirements for high-performance computing will mainly have several aspects, such as more reliability, improvement in the ratio of calculation and memory access, further improvement in the speed of memory access, and further acceleration of communication.