Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


Distributing Threads Across Multiple Servers

Posted on 2009-12-28
Medium Priority
Last Modified: 2013-12-10
I don't quite understand why you cannot treat processors in a cluster the same way you treat cores in a CPU.  Shouldn't I be able to run a cluster of 10 quadcore machines, and to my programs it is viewed as being a 40-core CPU?  Is this what the kerrighed kernel does?
Question by:incero
LVL 26

Expert Comment

ID: 26135527
Have an Admin add this question to a couple Linux OS categories.
I think you'll get more assistance there.
LVL 43

Expert Comment

ID: 26137418
You could if You also had one memory address space spread across all cluster nodes, however clusters usually have local memory only.
From very same reason whole process has to be transferred from one machine to another, not single threads only.

If Your clustering kernel supports common address space(accessing memory from other hosts as local), that should be possible. But even though, that would greatly slowed down the application, right?
LVL 69

Expert Comment

ID: 26137481
An OS knows about threads and how to manage them on a local machine.  If you want to handle a cluster as a parallel computing resource, you need a specialized OS, such as Beowulf http://en.wikipedia.org/wiki/Beowulf_(computing).  There are also special programming languages like CUDA for nVidia gpus that treats the stream processors in certain video cards as cores.
Transaction-level recovery for Oracle database

Veeam Explore for Oracle delivers low RTOs and RPOs with agentless transaction log backup and transaction-level recovery of Oracle databases. You can restore the database to a precise point in time, even to a specific transaction.

LVL 10

Expert Comment

ID: 26137510
In principle this could work but practical considerations would normally render it impractical. All threads running in a computer have access to local memory which allows very rapid sharing of data and inter-thread communication. In a cluster that does not share memory you would be limited by the relatively slow network link. For some application types this may not be a serious problem. What would be a problem is getting the software that would efficiently manage such a system.
LVL 57

Accepted Solution

giltjr earned 200 total points
ID: 26138058
It takes some serious horse power and high speed connections in order to do what you are talking about.  Each OS image must be able to talk to the other OS images fast enough so that it does not slow down the normal processing.  Reading about the kerrighed kernel it seems that it is attempting to do this.

One enviroment that does come close to doing this is IBM z/OS using Parallel Sysplex.  This is a clustering enviroment where each OS image talks to each other via a Coupling Facility.  It is not 100% like what you are asking, but it is close.  Parallel Sysplex give the impression that instead of "X" number of z/OS systems (up to 32), you have 1 system.  It uses Workload Manager (each system runs this and it talks to all of the other systems via the Coupling Facility) to see which system has what resources and how busy each system is.

Right now with up to 32 z/OS images and each image supporting up to 64 CPUs you can have a 2048 "single image" system.  I have never heard of a site that large yet.

Part of the problem is that you need high speed communications between each box, and 10 Gb Ethernet is not fast enough.  I think right now that the coupling facility links up to 4 GB (32 Gb).

You can use RMDA over IP to access memory of a remote machine over IP, at least that is my impression of what RMDA is used for.

LVL 41

Expert Comment

ID: 26138484
OpenVMS comes as close as it gets (esp a Galaxy cluster, which has shared memory...)....

With the separation of machines you put up a boundary in memory. To cross that boundary you need to add communication to it ==> overhead.
Multi threading is used to handle more stuff WITHIN one process context, splitting a process context acros memory boundaries just makes no sense... Then build a system with more cores or split your procedure into multi process handling.
(VMS Cluster go up to ~200 nodes of up to 64 Cores each, managed as a single resource domain, if needed for disaster tolerance with default setup the diameter of the cluster can be 500Km)

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What You Need to Know when Searching for a Webhost Provider
In the first part of this tutorial we will cover the prerequisites for installing SQL Server vNext on Linux.
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
Suggested Courses
Course of the Month14 days, 13 hours left to enroll

578 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question