2

Is it possible to use RAM from other computers to assist with Mathematica Light Grid Server 7 parallel computing? If so, how?

2
  • what are you exactly trying to do? Usually using directly RAM on other computers is pointless due to latency, but you could make a distributed application which would get its own share of the load. I haven't used Mathematica Light Grid Server 7, so I can't comment if it's a usable solution.
    – AndrejaKo
    Dec 22, 2011 at 23:41
  • How to do this - you could make a distributed application which would get its own share of the load
    – Pipe
    Dec 23, 2011 at 22:51

1 Answer 1

1

Mathematica implements parallel computing by using several kernels (several processes) that may even run on different machines. There is one main kernel which you interact with directly, and several subkernels (controlled by the main kernel) that do the work.

So, in short: you cannot have direct access to the memory of the other machines, but you can fully exploit it by running a subkernel on each machine.

You did not mention the specific problem you are trying to solve, but if you need to process a large dataset that does not fit into the memory of one machine in parallel, you can do this:

  1. First, split the data into manageable chunks.

  2. Have each of the subkernels load a chunk, and process it, obtaining a result that does not take up a lot of memory.

    There are several ways to control the subkernels from totally manual to totally automatic. ParallelEvaluate[] will give you fine grained control over each kernel. You can also use the $KernelID$ variable to decide which part of the dataset should be loaded into each kernel. Please see the documentation for details.

  3. Finally the results will either get collected into the main kernel (if the result doesn't take up much memory), or will be written out to disk from each subkernel (if the result is just as big as the input data)

One important point: to explicitly prevent some variables from being automatically shared between kernels (and taking up valuable memory), you need to put them into a separate context, as described here and the links therein.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .