Software
Even if you scale the project up and join thousands of nodes together instead of just two, you still will not have a supercomputer if all you have is the hardware. Software is essential to make sure that all those nodes are able to work on a problem together.
For the nodes to cooperate, they first need to all speak the same language. The first step, therefore, is to install the same operating system on all nodes. Next, you will need to set up a shared file system so that all nodes will be able to access the same data.
You will then need to write code for a job scheduler, which will dispatch the job to the different nodes. To solve certain types of problems, such as those commonly encountered in weather forecasting and molecular modeling, you will also need to give the nodes the ability to communicate with each other. This is called the message passing interface or MPI.
Problems that don’t require MPI are called embarrassingly parallel, meaning that parallelizing the problem is trivial. An example would be asking the computer to count the number of times a word appears in a book. Parallelizing the problem in this cause would simply involve sending different pages to each node.
Problems that require MPI, on the other hand, are much more complex and communicationintensive. For example, predicting the weather in one region requires prediction of the weather patterns in other nearby regions, so even if the problem is split into smaller parts, the individual components will be dependent on each other and require information from each other to make calculations.











