Powered by Invision Power Board


Forum Rules Forum Rules (Please read before posting)
  Reply to this topicStart new topicStart Poll

> Cluster Computing, Anyone ever done it?
Skeith
Posted: September 28, 2016 04:08 am
Reply to this postQuote Post


Forum Addict ++
*******

Group: Spamminator Taskforce
Posts: 4,479
Member No.: 2,695
Joined: June 13, 2005




For some time I have always wanted to build a cluster of networked machines to handle a single task.
No particular task, but maybe just be able to say, "I use my super computer for video editing"

I have seen older machines, P4 or earlier core 2 duo, 2GB ram, hard disk etc going for roughly $50.
mainly old machines out of offices.

For a couple hundred one could have enough hardware (minus the network) to assemble a 6 or 8 node cluster. Throw in a network switch and a DNS (router) A handful of patch cables and your in business.

Aside from the educational experience of assembling a cluster network "Super Computer"
would there be any benefit to doing so performance wise?

Machines of this age would have 100Mbit networking capability, would that even be quick enough to warrant a cluster?

Would the Floating point operations of such a cluster be superior to a say modern i5 Intel CPU?

If I get some disposable cash I may attempt this just to day I have a super computer in my living room.

Thoughts?


--------------------
-Barrett VE4BDE
PMEmail PosterUsers Website
Top
kellys_eye
Posted: September 28, 2016 09:37 am
Reply to this postQuote Post


Forum Addict ++
*******

Group: Spamminator Taskforce
Posts: 11,418
Member No.: 2,735
Joined: June 21, 2005




I've never fully understood the 'cluster' concept. Ok, I know what it means but I can't figure out how you write the software that splits the task(s) into packages that each machine tackles.

Even something as simple as (say) (3+(8/13)*41). How do you allocated the individual parts of the task to separate uC's and then recombine the result? Surely the effort to do so is greater than the effort required to solve the problem on a single machine?

I know this is a small example but for the average user it would be far too difficult to write the software necessary to divide the task between devices wouldn't it? Or is there a 'generic' OS that will do that for you?


--------------------
May contain nuts
PMEmail PosterYahoo
Top
Sch3mat1c
Posted: September 29, 2016 12:51 am
Reply to this postQuote Post


Forum Addict ++
Group Icon

Group: Moderators
Posts: 20,594
Member No.: 73
Joined: July 24, 2002




When you have a problem that computes a gazillion little cells of intense math, then recombines the bits later before another go, that's where you use distributed computing.

SPICE works well with multiple cores (not necessarily multiple machines), because each iteration of a simulation involves many trial calculations. Each core can try a different timestep, and the one that wins (finishes the calculation to the required precision without bombing from the high-level equivalent of divide-by-zero) becomes the next timestep, and so on.

A lot of physics modeling has this property. Analysis of the exact motion of, say, gas particles, within a bounded region, might be incredibly intensive: the interactions go up exponentially with the number of particles in the volume. But as long as that volume can be evaluated independently of its neighbors -- you can split a huge problem into many sub-problems, and stitch them together later with relatively little effort (i.e., matching up the mass flows, pressures, etc. along the borders between neighboring volumes).

Some problems are "embarassingly" easy to parallel-compute. Graphical rendering only has one unique input: the scene (geometry, textures, etc.). It only has one unique output: an array of pixels. If the input data can be distributed all at once, then ALL the pixels can be evaluated simultaneously, in one fell swoop. Normally, memory isn't spread quite so wide, and the limiting factor is boring old logistics -- getting access to all that memory, to read in the source data, and write out the result.

Tim


--------------------
Answering questions is a tricky subject to practice. Not due to the difficulty of formulating or locating answers, but due to the human inability of asking the right questions; a skill that, were one to possess, would put them in the "answering" category.
PMEmail PosterUsers Website
Top
Skeith
Posted: September 30, 2016 02:21 am
Reply to this postQuote Post


Forum Addict ++
*******

Group: Spamminator Taskforce
Posts: 4,479
Member No.: 2,695
Joined: June 13, 2005




And that is where my understanding of the cluster concepts ends.

There is an application layer that you install over your operating system (on all machines) and it enables the main node to act as if all the machines in the cluster are essentially one machine.
Now this I have learned purely by reading, and a few youtube videos.

Now I have not found anywhere where anyone has specifically stated that the program has to be written specifically for parallel computing to make use of a cluster, but obviously if the program is written specifically for, and optimized for parallel computing, it will make more efficient use of the resources at hand.

Now apparently windows has an environment to make a cluster system, been available since server 2003. So a windows cluster is possible. Also, there is notes of being able to use different operating systems in the same cluster if configured properly. So a legal windows license can me used on the main control node, and paired with say, ubuntu on the cluster nodes to make a functional system.


Alternatively, there is grid computing. Similar to a cluster, where many networked machines operate as a whole, but instead of all machines handling the same task, a task is handed off one specific machine. So in a grid, one would have a main node that will handle the I/O and several nodes that will handle larger tasks, and perhaps a file server, that will handle and share global files between the nodes. So the main node would look to an operator just like a standard operating system, while the rest of the nodes in the grid will handle tasks. Say for example encoding a video would be handled by one machine, while a web browser is handled by another, maybe that node will take two tasks and also handle your e-mail. A third node may handle some other task(s), this distributes the load across multiple machines. The file server node may contain global files, taking the network load for large file transfers off of the primary nodes network connection so latency doesn't become an issue with handing off the tasks to the other nodes.
This is common in an enterprise setup.

I have just begun to research these concepts and am getting very interested in building a machine to experiment with.


--------------------
-Barrett VE4BDE
PMEmail PosterUsers Website
Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:

Topic Options Reply to this topicStart new topicStart Poll

 


:: support us ::




ElectronicsSkin by DutchDork & The-Force