(Tianhe-2, the most powerful supercomputer. China.)
For the past few months, the Mauritius Research Council has been working on the setting up of a National Centre for High Performance Computing (CHPC) in Mauritius. As a member of the committee, I have been thinking a lot about the importance of having supercomputing facilities in Mauritius.
Why do we need supercomputers?
- Supercomputers are immensely powerful computers which can be used to perform simulations of various processes. For example, supercomputers are used to simulate airflow on an aircraft wing, particle movement during a nuclear blast, the interaction between molecules during a chemical reaction or the movement of bodies in space. Without supercomputers, the cost of getting these insights would be prohibitively high. Supercomputers allow us to understand very complex processes without having to actually do them thanks to simulation.
- Supercomputers, being so powerful, are also used to perform brute force calculations. One good example is trying to predict weather. The meteorological station has a myriad of sensors everywhere measuring temperature, wind speed, humidity, etc. and, from these millions of data points, calculations need to be done in order to know what will happen next. The difficulty, of course, is to come up with a solution quickly enough for this information to be useful to us.
- Supercomputers allow us to learn and leverage molecular dynamics. As explained on Wikipedia, “Molecular dynamics (MD) is a computer simulation of physical movements of atoms and molecules in the context of N-body simulation. The atoms and molecules are allowed to interact for a period of time, giving a view of the motion of the atoms. In the most common version, the trajectories of atoms and molecules are determined by numerically solving the Newton’s equations of motion for a system of interacting particles, where forces between the particles and potential energy are defined by interatomic potentials or molecular mechanics force fields.” The interesting part is that, once someone knows about molecular dynamics, he/she can apply the principle in different fields.
What will we have to learn?
- A supercomputer is, in essence, a computer with thousands if not millions of processors instead of the few we have in our normal computers. In order to use the capabilities of a supercomputer to the full, it is important that software applications be written to work concurrently. This means that, when run on a parallel computer such as a supercomputer, the software can distribute work over the myriad of processors instead of running on one processor only. From a technical perspective, this is difficult to achieve. For instance, when using C or C++, this can be done by leveraging the Open MPI library. When developing in Java, one can use the Concurrency Utilities. Software developers will have to learn how to use these powerful features and this is harder than it looks because it requires a change in mindset: thinking parallel instead of sequential is hard. Interestingly, when I was a lecturer at the University of Mauritius, I taught Concurrency and Parallelism to final year students so I may have a few things to contribute at this level.
- A supercomputer is, in essence, a massive cluster running Linux. As everyone knows by now, Linux has eaten the world. And this is especially true for supercomputers where Linux powers 97% of the world’s most powerful supercomputers. For example, the most powerful supercomputer in the world, Tianhe-2, runs Kylin Linux. The next one, Titan, runs Cray Linux. The third one, Sequoia BlueGene/Q, also runs Linux. And so on and so forth. This means that the setting up of a supercomputer in Mauritius will require the expertise of a number of Linux system administrators who are comfortable with clustering and parallelism. Interestingly, at Knowledge Seven, we provide the best Linux courses in Mauritius.
- Finally, our researchers will have to think out of the box. Simple problems with their simple solutions do not require the use of supercomputers. In order to fully utilise the immense power of supercomputers, we will have to start thinking about solving the big problems. This will require researchers to move out of their respective silos and work together. Naturally, this is because big problems are generally multi-disciplinary. This change in mindset will take some time as we, in Mauritius, love our respective silos and their associated benefits…
Is there a risk?
Yes, as frequently in Mauritius, we tend to focus on the hardware and software and forget that the most important component is peopleware. If our decision makers, our researchers, our developers and our sysadmins do not know how to leverage a supercomputer, then it is useless to have one in the country, gathering dust and quickly becoming obsolete while costing millions.
To prevent this kind of situation, the Mauritius Research Council is organising an Awareness Workshop on High Performance Computing (HPC) in Mauritius from 26 to 28 August 2015 where those who might benefit from supercomputing will be able to talk with those who offer supercomputing solutions. I understand that invitations to participate in the workshop will be sent shortly. On Thursday 27 August from 11:15 – 12:15, I will moderate a session for various organisations who will be able to come and explain what problems they are trying to solve and how they intend to leverage supercomputing facilities in the future.