






You need to fill the car with gas, change every tire, and replace underperforming parts - as fast as humanly possible! Every second counts. If you are too slow, you’ll lose the race. So what do you do? You get a team of people to work together in an extremely coordinated manner. You make sure everyone starts and stops at the exact same time, because even if everything else is done, if you are waiting for Bart to finish replacing the front left tire, the car is stuck. Being the clever coordinator of the pit crew, you form sub-teams and assign tasks being careful that no one will get in each other’s way and that you have the right number of people on each task. Maybe three people for each tire and two for the gas... Any less than that and the pit stop would be too slow!
The same idea is true for solving science problems on supercomputers. You need to write programs to chunk the big problem into small pieces, give each little piece to a computer (or sub-group of computers), have them send messages to each other (kind of like talking between teams), and then report back and get new work when they are done. Broadly speaking, we call this approach “Parallel Programming.” All of this requires some pretty sophisticated programming techniques and approaches, but when done correctly, it enables supercomputers to solve problems hundreds, thousands, and even hundreds of thousands of times faster than it could on your laptop. In some cases, the problems supercomputers can solve are actually impossible to do on a laptop.
Every research problem is different, but the goal is usually the same: discovery and innovation.