Distributed Processing Module

How Does Distributed Processing Work?

Running a Monte Carlo Simulation with Multiple Processors

The Distributed Processing Module uses multiple copies of GoldSim running on multiple machines (and/or multiple processors or cores within a single machine) to share the computational burden of a Monte Carlo simulation.

A distributed processing simulation is controlled by a single Master GoldSim executable. The Master executable is a version of GoldSim running on one machine which has the Distributed Processing Module enabled. Through a dialog accessed via a menu item, the Master can create connections with multiple Slaves.

Slave dialog

The Master assigns and sends individual realizations to the Slave processes. Each Slave process carries out its assigned realization, sends the results to the Master, and then makes itself available to work on another realization. Once all of the realizations have been completed, the Master combines all of the results into a single GoldSim file just as if the entire simulation had been carried out on the Master’s machine. 

The GoldSim model file (and other required files such as linked spreadsheets) need not be present on machines running Slave processes. The Master automatically transfers any necessary files to the Slave machines.

When running as a Slave process, GoldSim is run in a special mode. Rather than launching GoldSim in the traditional manner on the machine running the Slave, a GoldSim Slave is launched from the command line (this can be done using a Windows shortcut or the Run option on the Windows Start menu). Alternatively, the process of starting Slaves can be automated by installing the GoldSim Slave Manager on machines which will act as Slaves. When running in Slave mode, you cannot view or edit a GoldSim model. The only function that a Slave serves is to receive, process, and send back realizations sent to it by a Master. Note that slaves do not require purchase of a separate GoldSim license, since the free GoldSim Player can act as a slave.

Learn More