Does anyone know anything about Clustering

Discussion in 'Multiprocessing Systems' started by Valkhorn, Aug 28, 2008.

  1. Valkhorn

    Valkhorn Gawd

    Apr 23, 2007
    So I have a few PCs sitting around. I was looking at clustering software and nothing really seems to be either easy to use or versatile enough for what I had in mind.

    Basically, I would like to know if there's a way I can cluster my PCs so that if/when they are idle they can share some of the processing load of applications from a main system. I'm using gigabit ethernet and have a throughput of up to 380MB/sec through my main switch, so I'm wondering how this can be accomplished?

    Most of my systems are Ubuntu 32 and 64 bit, and I have two windows systems as well. How might I be able to cluster them so that I can divide the work for particular applications between idle systems across the LAN?
  2. bob

    bob 2[H]4U

    Feb 13, 2002

    Ive used vmware server, and recently tried out the free ESXi. Its not quite clustering, with the exception being ESX, but I can sit in my recliner and decide what each computer should be doing, by moving a VM around from one box to another. Rendering useless random images, compressing video... things like that somewhat work spread out over multiple VM's, where the peices of work take hours and hours.
  3. falconman

    falconman Limp Gawd

    Dec 17, 2007

    but id like to as well
  4. klergymusic

    klergymusic n00b

    Sep 21, 2007
    the ability to cluster is dependant on your operating system.
    clustering only allows you to load share the network tasks and a few built in apps in the distros. it is for server task distribution, and load balancing not application acceleration.

    the applications in the different clustering operating systems do the load sharing, not the operating systems themselves.

    for instance running a beowulf cluster isn't going to accelerate photoshop or quake or open office. it will accllerate an email server's ability to handle more accounts simulataneously, it will accellerate sql (if you have the correct versions that do so), it will distribute the load across multiple servers for maximum uptime in a domain controller situation etc...

    the apps you want to run need to be written, or in some cases have an extra component that runs, on other machines along with the main machine. 3dstudio and mental ray is an example. the second is the app that runs on the networked machines that accepts the data to be processed and processes it on the networked machines.

    the thing you are really asking about is not clustering.
    it's distributed computing.
    the difference is subtle but it makes all the difference in the world.
    clustering is only going to accellerate network operating system tasks and or add redundancy and increase uptime.
    distributed computing increases productivity of an application by sharing the workload as much as it is able to on other machines to reduce the compute time of tasks.

    to do distributed computing the operating system doesn't have to be a clustering os. for some tasks it might due to the dependancies of the app on the clustered os' configuration or included apps. for example 3dstudio doesn't need a clustered os, nor does fold at home.
    most email server clustering does rely on a server enviornment that has clustering built in as it relies on the host os to handle the network traffic shaping to distribute the email system across the various machines.
  5. geiger

    geiger Limp Gawd

    Jun 23, 2005
    For what you as asking not really.

    Clustering depends on the application and context.

    Clustering falls into 3 areas, shared computing, fault tolerance, and application specific.

    Shared computing:
    Each node gets it's bit to chomp per se. The node is given a set of routines to process and then report back results.
    Example: The {H}orde

    Fault Tolerance:
    This is a bit gray. You can have active-passive, active-active, or a mesh. This can apply to anything from network interface bonding to raid.
    Examples: Multiple AD Domain Controllers, Raid, NIC bonding

    Application Specific:
    This takes FT or Fault tolerance to the next level. It often relies on multi-threaded/simultaneous requests.
    Citrix Cluster: Multiple servers with similar applications that depending on load handles a user sign on.
    Oracle RAC: Multiple database servers run the same instance and storage, communicate RDBMS integrity operations between nodes.
    VMWare: Central server tracks server load and uptime, allocates VM's to hardware based on gathered data and moves VMs based on this information.
  6. Jayllo

    Jayllo [H]Lite

    Oct 19, 2005
    How about clustering for high availability?
  7. BrkDncr

    BrkDncr 2[H]4U

    May 6, 2001
    just for fun we can talk about system acceleration through manual "clustering"

    basically, dedicate a box to do something that would normally slow down your primary system. FOr the longest time I used one of my weak boxes as my BitTorrent client. I originally just used remote desktop to get into it, but eventually i set it up with a web front end and a shared folder that it scanned so I could drop .torrent files into it.

    You can use this same idea for many other applications. Outlook for instance can be a mem hog. Just remote into the other machine and run outlook from there. Same with backup jobs or heck even scheduled full anti-virus scans...just set them up to run on your spare box and access your main box. Sure they run slower since it's over the network, but it's not going to slow down your main box as much as running them locally.