Let me introduce you to a good friend of many scientists all over the world. His name is High-Performance Computing system (HPC) or just supercomputer. The guy is not picky, but you have to explain a problem properly, give him an algorithm to solve it and a little bit of time. He is well socialized and can understand all modern [programming] languages. HPCs are used for scientific simulations, weather forecasts and data analysis.
In the era when portable computers (PC) are widespread and used on a daily basis, one can hardly imagine the limitations of the old machines. I remember attending one of the first classes on PC architecture. Our professor started with the historical overview and, in particular, with the so-called punched cards. These cards were widely used to create and store programs in order to launch them on IBM machines. One card was encoding one line of the program. Thus, launching even a simple 100 lines program was quite challenging. Not to mention that computers at that time had less than 1 kilobyte of memory. But what impressed me a lot is that programmers had to reserve not only a certain date but hours to run their code. A large number of users led to the fact, that waiting period could be one week or more. Thus, it required a good understanding of both the programming paradigm and the computer architecture in order to properly estimate memory usage and runtime of your program.
So what? Nowadays we have supercomputers with millions of cores and thousands of terabytes of memory. The Top 500 list of the modern HPCs can be found here (updated for November 2018). Take a look at the Summit HPC, which is located at the Oak Ridge National Laboratory in the USA.
Impressive, isn’t it? It has almost 2.4 million central processing units (CPUs or cores) in total. For example, Sony PlayStation 4 has only 8 cores.
EOS machine (see photo below, located at the Toulouse HPC centre called CALMIP) was ranked 183 in the TOP-500 list when it was launched in June 2014. It shared calculations with Météo-France. Last year more than 600 researchers from Toulouse consumed 74 million hours of computational time for their simulations!
A brand new HPC called Olympe will be launched at CALMIP next year. It will have 13464 state-of-the-art cores and I am looking forward to running calculations on it!
I will not go into details of HPC cooling systems even though it remains a major issue nowadays. It is a very technical problem, but the take-home message for you is that high temperature is the sworn enemy of the computational performance. The most common cooling solution is air cooling, which is basically an enormous air conditioner consuming a crazy amount of energy.
If you are concerned about ecology and green technologies then you might find The Green 500 list interesting. A good example is Tsubame-KFC (top 1 of the green list in June 2015) from RIKEN, Japan. It had an extremely high processor/CPU density, which were kept in non-toxic, low viscosity oil with high 260 Celsius flash point. The latter solution made it possible to eliminate water usage. For more technical information see this article.
HPCs themselves are very expensive. But there is also a price of the computation itself, which is based on the amount of consumed time/energy/cores. For instance, one hour of CPU calculation time on a French national supercomputer is about 0.044€ as reported in March 2017 here. The number is not huge, but if one consumes 1 million CPU hours then it becomes costly.
(Super)computer at home
All HPCs discussed above are quite expensive, heavy and not really easy to maintain. But do you have a PC or laptop with NVIDIA or AMD video card? Video card or graphics processing unit (GPU) is mainly used to process and visualize graphics (e.g. for computer games or video rendering). Modern GPUs have up to several thousands of cores, perform operations in parallel and simultaneously and usually weight less than 1 kg! The GPU cores do not “talk” to each other as CPUs do to exchange data. This is the main difference between conventional multi-core supercomputer and GPU. So, would you believe me, if I tell you that the video card in your PC/laptop is a supercomputer itself?
Let’s consider the following task: you are a big boss with 5000 employees whose monthly salary varied during the year 2018. You would like to estimate the total amount of annual salaries paid in 2018 to see whether it is possible to hire new staff next year. Assume that computing facility is a PC with 8 CPUs and with a built-in GPU, which has 2500 cores (the real number is 2560 for NVIDIA GeForce 1080). So what one has to do is to take 12 monthly salaries and sum them first for a given employee to estimate an annual income and then compute the sum over all employees.
One possible solution is the following: if we assume that a sum of two numbers is computed in 1 millisecond then with 1 CPU it will take 12×5000×1 [milliseconds]=60 seconds to calculate the result. Without GPU we have an access to 8 cores of our PC and after some parallelization, the number estimated for 1 CPU can be divided by 8 resulting in 7.5 seconds of computational time. 2500 cores of GPU can be used simultaneously to calculate sums. Thus we compute the annual salary for the first 2500 employees in 12 milliseconds and then repeat the calculation for the second half. In the end, we consume 7.5 seconds with CPU vs 24 milliseconds or 0.024 seconds with GPU. The boost is more than 300 times! Calculations above are quite rough for they do not take into account the time delays related to the fact, that not all cores will finish exactly at the same time. For example, it will take more time to compute an annual salary of an employee with an income range in 2000-4000€ if compared to the 500-600€.
If my example was not very clear then watch this awesome episode of MythBusters:
It is hard to imagine a life of a theoretician like me without HPC. Researchers always mention the corresponding computational facilities in the Acknowledgements section of their articles. All my scientific results obtained so far were calculated on the EOS machine (see the Few examples section above) and on the small computational cluster in my lab. It is worth mentioning that all HPCs from the TOP-500 list run Linux operating system.
I would like to conclude with the following performance comparison published by NVIDIA, which demonstrates that high-performance calculations in the nearest future will more likely depend on the development of GPU. Almost all machines from the TOP-500 list have a significant amount of them nowadays.
If you have any questions left or you would like to hear more on this topic – feel free to write a comment!