Why do all supercomputers in the world use linux?

711 viewsOtherTechnology

Why do all supercomputers in the world use linux?

In: Technology

22 Answers

Anonymous 0 Comments

Adding a bit beyond the licensing and hardware discussion…

The way programs run on an supercomputer is by dividing up a large problem into smaller tasks: If it takes me 24 hours to solve a problem, then two us can solve it in 12 hours (in reality it’s not an exact doubling in speed).

More specifically, each task usually involves some set of equations for a particular area. Imagine a square that you’ve divided up into a bunch smaller squares. One task is going to solve some equations for one of the smaller squares, another task is going to solve the same set of equations on a different square, etc. Because of some technical/mathematical reasons, neighboring squares will have to share some data with each other (the values they computed that lie on the border of other neighbors). Now, hold that thought for a second.

For small problems, this task division can probably fit into your computer’s memory, and we can probably get some speedup by using multiple cores; we divide up the squares and have each core of your processor work on some of the squares.

But let’s say you want to solve a bigger problem. Now the square you want to solve equations on is so big it can’t fit into memory. So you make a supercomputer that is really just a bunch of smaller computers that are all connected to each other.

Now you have a problem…
Remember when I said that neighboring squares needed to share some information? That’s difficult if that data is sitting in the memory of a different computer. We need a way for computers send and receive data and we need it to be fast.

Typical network protocols are too slow for this…they rely on a lot response and acknowledgement:

“I’m going to send you a message, are you ready?”

“Yes, I’m ready”

“I’m sending the message”

“I understand you’re sending the message”

….

This is fine for things like the internet where you want this for security and reliability, but for supercomputers it gets in the way.

So, supercomputers have special networks that allow processors to just fire a message off and bypass all the response/acknowledgement stuff.

Now, you have to write a program to handle this. We use a sort of programming language that simplifies all of this “I need to quickly share data with other processors”, and that programming language knows how to use the special networks.

So, the point of all of this….none of this actively developed for Windows.
Besides everything said here about GPUs and custom filesystems, a lot of it comes down to the fact that the way programs that run on supercomputers are written is basically incompatible with the Windows OS.

You are viewing 1 out of 22 answers, click here to view all answers.