views:

71

answers:

3

I have an x86-64 computer running Linux that I would like to supplement with other non-x86-64 Linux machines.

Is it possible to somehow benefit from the computational power of another machine without it being the same architecture?

As a second question, what kind of performance increases are available and does it require specialized software to work? Or can Linux just abstract the cluster / additional machines as additional CPUs?

+2  A: 

Depending on the software it can or cannot be abstracted away. Doing such stuff usually involves remote procedure calls and depending on the library you use, it can or cannot be abstracted away.

A basic example is doing a RPC and giving an interger as an argument. Some architectures use big-endian, others use little-endian and your RPC library has to take care of that.

Henri
A: 

You shouldn't rely on this fact anyhow. You need to have the right abstraction layer (e.g. communication over IP is a good starting point). This is in part necessary to allow for "in service upgrades" i.e. adding newer machines that may/or not be of the same architecture as the starting cluster configuration.

Imagine going to your boss: "Well, we need to take to whole service down because we've got these fancy new machines ...". ( and I can hear the reply loud and clear )

Of course, if the concerns of a production environment is out-of-scope in your specific case, you can disregard my quote. Let's just say it would be a typical requirement for any big deployment.

Lastly, it is always easier to deal with a symmetrical cluster (maintenance is simplified) but then again, an asymmetrical cluster can be a "stepping stone" when dealing with a "rolling upgrade".

Clarification: I never eluded to abstracting everything away. Clarification #2: by "architecture" I am assuming "CPU architecture" i.e. not "architecture of the overall system".


As for the second part of your question: it all depends on the architecture of your software.

jldupont
I disagree. In a HPC cluster, you don't suddenly expect your spec to change _the architecture_. Sure, maybe a cpu type or frequence, amount of ram, ... but you cannot and should not abstract everything away. Or else, how do you work without tcp/ip or for that matter electricity?
Dirk Eddelbuettel
@Dirk: I wonder what made you think I was unrealistic to this extreme: could you kindly point me the statement that evoked that thought so I may update it at once?
jldupont
+1  A: 

As Henri said, you need the software to take care of the different representations. That rules out MPI, but for example NWS (which you can use with Python, R, Matlab, ...) should work.

Dirk Eddelbuettel