Friday, 15 April 2016

Introduction to HPC

I want to start this blog by introducing you to the world of HPC. HPC or High Performance Computing most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one could get out of a typical desktop computer or workstation in order to solve large problems in science, engineering, or business. I pulled this description from some another page and was quite convinced with it. But am still not sure if one who is new to this field would really understand this.

Let me put this simply, in today's world, the jobs that run on computers are not limited to simple calculation. Nowadays we are needed to run large and complicated simulations (remember that movie The War Games), test automobile and aircraft designs, do complicated calculations, etc. All these includes processing of large data. I mean really really large. For this we obviously need computer systems with really good processing speed, in other words, supercomputers. But even if we use the top supercomputer available, those jobs take too much time to complete. By too much time, I don't mean 4-5 hours, I mean weeks or even month. And in the today's world no one want's to wait for such a long period. Here the HPC team comes in. What we do is we optimized the way these jobs run one the servers. We use parallelization, code optimization and loads of other techniques to reduce the time taken by those jobs to finish. And the result always astonishes a new mind, as most of the time we see a job which used to take almost a week to complete, after optimization, finishes up in just about a day.

On august of 2015, I joined the high performance computing team in one of the major IT company of the world. I was amazed and thrilled by the technologies that these people work on. Although mesmerizing, I always faced the problem of not finding a good source from which I can understand those technologies. The official documents were there, but I always felt that those methods could be explained in a much simpler manner. So, in an attempt to record my progress and save people from the tiring work of finding a good source of knowledge, I am writing this blog. My motive also involves to project the solution or technology in a simple language, so that people with non-HPC background can also benefit from this.

This is my first blog, so please bare with me if I make some mistakes and feel free to comment on them, and I make sure that those mistakes be accounted for. I will try to add a new post every week. If you find this blog any how interesting and resourceful, please like it and share it among your friends.