Linux Showing Up In Supercomputers
tomas sent us a press release on yahoo talking about
Linux and Supercomputers.
Talks about Beowulf and clusters as well as
Albuquerque High Performance Computing Center's 128 P2/450
cluster. I'd like one of those, but I don't have $400k, or
a building to put it in. (who am I kidding! I couldn't pay
the electricity bill to run 128 P2s!)
I don't think so. it's not as easy of a problem as you state. Just handing off sequences of moves to each processor interferes with the main shortcut you can take in chess (Alpha beta). If I search move one and get a score of 5 then when I'm searching move two I only have to see if it's worse than 5, not the exact score. It cuts off huge amounts of search time, but to do that with a distributed system you need some kind of communication between the different computers.
Crafty (A better GPL'd chess program) uses multiple processors, but I don't think it works with beowolfe. Something that I'd like to see is someone writing a distributed ches program that used Slashdoters computers take on Deep Blue or Kasparov. I'm not sure where my money would be, but it would definately be interesting.
I don't think solving chess would be possible however many computers we hooked up though. The number of positions that you'd have to search to play a perfect game is something like 10^120. I remember reading that if each atom in the universe were searching a move a second since the begining of time it would still not have been solved.
Overclocking simply doesn't meet the reliability and stability requirements of supercomputers. If YOU had a problem running for 10 hours and there wasn't sufficient time open on the machine for weeks. Would you like it if the data was ruined by a random error, due to the stress of overclocking?
Chess is a perfect task for a Beowulf network. Whole trees of possible moves to examine could be handed off to as many machines as are available. Each machine assigns an heuristic value to a given series of moves which eventually all gets passed back to the main machine which then picks the best one. The strength of the chess program could be easily increased by increasing the number of attached machines. Deep Blue and other dedicated chess machines simply cannot scale this way. With enough machines working in parallel, the ability to play perfect chess might become possible, and we'll have to find a new game to succeed chess.
Think of all the money they'll save if they used overclocked celerons.. approx 100k at the time they built it...
We have more processing power than that in the library alone at our University, but they are all NT workstations which spend most of their time idling away doing simple things like reading email. If only machines like these could all be switched over to Linux, and beowulf configured so that it runs as a niced background task, so it shares spare CPU cycles across the hundreds of machines we have here, we could have a supercomputer for just a small time investment.
One game that would present a bigger challenge would be go. Among other differences it's played on a 19x19 board instead of chess's 8x8. Also, in go you are permitted to play onto (almost) any open spot, whereas with chess you're limited to the moves available to the pieces. Therefore, the number of trees to explore explodes by comparison to chess. AFAIK, no go computer or program has evern beaten a professional level players - whereas in chess Deep Blue actually beat the world champion. So, once chess is taken care of, I suggest we move on to go.
>or something that could be more :)
>suitable for lots of processors
Are you suggesting that chess is not a suitable task for supercomputers? From SPACEWAR to nettrek to distributed.net, powerful machines will always be used for non-critical tasks just because they can.
Mmm.. I'm looking at the source code of Linux ( isn't open source wonderful ? ), and in the file include/linux/tasks.h ( hanging from the 2.2.x source code tree ) there's something like
#define NR_CPUS 32
Now, I've never seen Linux booting on a 32-CPU machine, but I remember seeing the boot trace of Linux booting on a Sun 16-CPU machine ( and of recognizing and initializing them all ).
No to start a flame, just to correct an error
Hugo
( now, when will slashdot send me my password by mail so I could log in ? )
Check the HOWTO - Linux Clusters and SMP are
very different.
Here are some cool links:
Beowulf Underground
Extreme Machines
One major part of the price is all the networking hardware. One really nice thing about the cluster is that it has three different connection between nodes (myrinet, 100baseTX, and one other one that I can't remember right now). The Myrinet connections cost $2K to say the least.
For more info, go look at their page: http://www.arc.unm.edu/alta
Funny this was mentioned. I just went over there today (it's right across the street from where I am now). It's part of their new "Visualization Lab". This is the room that all of us dream about. 8-10 terminals consisting of Suns, linux boxes =], SGIs and wintel boxes (the most impressive is the 8 R10K processor, 1 gig ram, Infinite Reality, Onyx2). As well as a 6' x 10' 3d projection screen (you wear nifty little glasses) and VR gear that sits idly in the corner calling to that secret place in our subconsious. Perfect lighting control, incredible sound, climate control, comfortable seating, and unlimited computing resource at your disposal (almost). You don't even have to deal with the hum of the computers. They're all in the next room. I'm just waiting for them to install the kitchenette and bathroom then I'm moving in. See you on the flip side.
-The Forever Damned
"Albuquerque bought its $400,000 system..."
"Albuquerque's Roadrunner has 128 Intel Pentium II processors"
$400,000 / 128 = $3125 each.
That's each mind you! Three thousand each for computers with no monitors or anything really except a nic and some memory.
$3125 each!
Anyone want to go into business with me?
I'm sure those engineers would love to further optimise Linux to work even better on their BEOWULF clusters. I fully expect to see even greater support for clusters very soon.
:)
The possibilities of Linux are just WAAAY too exciting!
Codifex Maximus ~ In search of... a shorter sig.
Posted by FascDot Killed My Previous Use:
Man, those Beowulf clusters are FAST. Just think what you could do with a Beowulf cluster of them...
Posted by FascDot Killed My Previous Use:
Use Distributed IPC (DIPC). Patch the kernel and change one line in your program and suddenly you are a Beowulf cluster.
Nick
-- "It's a sad day for American capitalism when a man can't fly a midget on a kite over Central Park" - Jim Moran
To use this as something approaching a supercomputer you have to custom write your applications using a message passing library such as MPICH. An ordinary program, even a multi-threaded one, will not show any speedup on a cluster as the standard Beowulf model does not support process migration (although MOSIX does this). Even with process migration, you still don't have shared memory so things are a lot slower than a real supercomputer.
Nick
-- "It's a sad day for American capitalism when a man can't fly a midget on a kite over Central Park" - Jim Moran
It is possible, that a perfect game might actually end up with such simplicity as "first move wins". That, IMO is equally boring. Or it might turn out that "second move wins", which IMO, is equally boring. Anything else, is definitely not a perfect game.
Good judgement comes from experience, and experience comes from bad judgement.
- W. Wriston, former Citibank CEO
Since two "perfect"ly capable chess players playing a perfect game would always end up in a draw...boring.
Good judgement comes from experience, and experience comes from bad judgement.
- W. Wriston, former Citibank CEO
Man, those Beowulf clusters are FAST. Just think what you could do with a Beowulf cluster of them...
All I have is just a 464 Celeron A.
*sniff*
I'm just a node.
Everyone picks on me.
Just because I'm a little node of a large cluster.
I bend over to crack RC5 and the winbiff team comes up from behind to number two.
Get cracking for the slashdot team and be a part of supercomputing. Do it in init.d. Do it now.
Atticus, a UNM student.
Oh I agree :) .. It'll be interesting to see how it develops and from what I've seen the whole thing will probably split into two areas, the single processor to 8 processor market and then another flavour for 8+ processor systems. With Linux apparently only supporting 4 processors well atm it might be a while yet. Still, progress marches ever onwards.
Delphis
>With enough machines working in parallel, the ability to play perfect chess might become possible, and we'll have to find a new game to succeed chess.
.. or something that could be more suitable for lots of processors :)
Hmm.. Maybe we could just play against fellow humans instead and have the computers play a new game called 'calculate the Nth prime' or 'find patterns in noise a la SETI'
Delphis
In an interview with Linus a while back on LinuxWorld he mentioned that there might be forthcoming versions of the kernel that support >8 processors.. if the current kernels don't then how different is the Beowulf project from the standard 'thread' of Linux? .. I'm sure an enlightened /.er will tell us :)
.. Or even just don't bother with central heating any more .. the processors will do it for you ! :D
.. Here's looking forward to a quad K7 :)
As for the power requirements, maybe some sort of thermocouple could be used to recycle back into electricity all that heat produced by the processors !
A multiprocessor machine would be fun, no doubt
Delphis
> (who am I kidding! I couldn't pay the electricity bill to run 128 P2s!)
:-) .
look at the bright side..
at least you'll not need to worry about heating bills.
--------------------------------
check out my music
you might actually like it.
Honey, part of the point of beowulf is that all the nodes are dedicated to the cluster. Makes them easier to manage, simplifies partitioning the workload,etc.
This isn't to say that you couldn't do something like you are talking about. Interestingly, the parallel APIs used in beowulf also run on NT...
The greatest thing coming out of the new Linux/Internet supercomputer paradigm is the way no-one from the old top-down power structure can do anything about it. Distribute and devolve and you give up a bit of control - something the old order can't dream of doing - but gain vast amounts of robustness.
Of course, we're not quite there yet - we'll need a far more distributed and less wired Internet than we have today. (You may laugh at Melissa infecting Windows homegenity, but would you laugh if an analogous problem got into the 80% of the Net that runs on Cisco routers?) But the day gets closer. Distribute and give up control.
- Read fiction at www.espressostories.com
I had mine running at 450 for a while but it'd
reboot if I ran gcc. I'm an even slower node now at 337mhz so don't feel bad.
"Unix is a proprietary operating system intended to compete against Microsoft Windows" --Patrick Reilly
I know this may sound a stupid question, but how does one actually go about running, say, a Fortran program on a Beowulf cluster?
Is a special compiler needed, or libraries?
And is it reasonably straightforward to convert a non-parallel program to run on such a cluster?
I've done some programming on a Cray-T3D and for the right kind of problem it's actually very simple to effectively exploit its parallel nature , for instance, using High Performance Fortan or one of its newer incarnations, such as 90.
For the correct problem is it this simple to get the full benefit of the Beowulf cluster?
Many thanks,
Paul
I don't know where you get that idea. There is no proof one way or the other as to what the result of perfect play might be
Correct, you have to use MPI or something similar to run a single app across a cluster. BUT: There are tons of applications in science where one essentially runs 100s or 1000s of smallish calculations while varying some input parameters or input data. For these, a Linux cluster is the perfect match.
We are currently planning a 1000 CPU cluster for such an application where not even a high-speed network is needed, just lots of cycles to get the job done before we grow old.
Ah, send 'em over here, my skool would love 'em!
THIS IS PRE-ALPHA PRIVATE RELEASE CODE!!!
DO NOT USE IT UNLESS YOU ARE A DEVELOPER.
ALL IT DOES IS CRAS
This is sort of a moot point. To use just about any modern supercomputer you need to write your code using mpi, so this isn't really a downside to the Beowulf clusters. Trying to get around using mpi would be foolish, as it would result in nonportable code. The cool thing about Beowulf clusters (as I see it) is that you can pretty much take any mpi code you have and just recompile.
Of course, you would also need compilers and the relevant libraries, which might be a problem. The code I use (a plane wave pseudopotential DFT code, if that means anything to you) requires certain libraries (plus a f90 compiler) which I don't think are available for intel. :( But then again, it requires a lot of internode communication, so it would be really slow on a Beowulf cluster anyways.