The GoldSim Distributed Processing (DP) Module is an extension to GoldSim which allows the use of multiple computers connected over a network, or multiple cores on a single computer, to share the computational burden of a single Monte Carlo simulation (i.e. a simulation with multiple realizations). Distributed processing is accomplished by having a Master GoldSim executable connect to a number of Slave GoldSim executables. Each Slave executable runs as a separate process to complete one or more realizations in a Monte Carlo simulation. The Slave processes can be on a single computer or on multiple computers which are connected via a network. The Master combines all of the individual realization results (from the Slaves) into a single GoldSim file and enters result mode, just as if the simulation had been completed entirely on the Master’s machine.
Figure 1: Use "Run on Network" to start a DP simulation
A DP simulation is controlled by a single Master GoldSim executable. The Master executable is simply a version of GoldSim running on one machine which has the DP module enabled. From within GoldSim on the Master, a DP simulation is started using the “Run on Network” Run Menu item as shown in Figure 1. The “Run on Network” item brings up the “Master Settings” dialog shown in Figure 2. The “Master Settings” dialog allows the Master to create connections with multiple Slave GoldSim processes.
Figure 2: "Master Settings" dialog
One way to create Slave processes is to use the GoldSim Slave Manger. The GoldSim Slave Manager is a Windows Service that can be installed on a computer using a separate install package which can be obtained from the GoldSim web site. After the GoldSim Slave Manager is installed and the corresponding Windows Service is started, Slaves can be started by simply clicking the “Update Status” button in the “Master Settings” dialog shown in Figure 2. There is a related Knowledge Base article which provides additional information on using the GoldSim Slave Manager.
In many cases, the GoldSim Slave Manager will not be installed for use in DP simulations because it requires the installation of an extra software package. The “Master Settings” dialog (Figure 2) can still be used to connect to Slaves and to control a DP simulation even when the GoldSim Slave Manager is not installed. When the GoldSim Slave Manager is not installed, the Slave processes need to be started manually. Once the Slave processes are started and the correct “Slave Computer Address” is entered in the “Master Settings” dialog (see Figure 2) using the “Add…” button, then the “Update Status” button will connect the Master to the Slaves.
Manually Starting Slaves
A Slave process is started by running a GoldSim executable with the “-s” option. Either the GoldSim Player (GSPlayer.exe) or GoldSim (GoldSim.exe) can be used to create Slave processes by passing the “-s” option. Examples of running GoldSim and GoldSim Player with the “-s” option are given below.
- "C:\Program Files (x86)\GTG\GoldSim 11.1\GoldSim.exe" –s
- GoldSim Player
- "C:\Program Files (x86)\GTG\GoldSim 11.1\GSPlayer.exe" –s
There are two different ways to start a GoldSim executable with the “-s” option to create a Slave process.
- Using the Windows Run dialog (Windows Key + R)
Figure 3: Starting a GoldSim Player Slave process from the Run dialog
- Using the Command prompt (cmd.exe)
Figure 4: Starting a GoldSim Slave process from the Command Prompt
Once a Slave is started, using either the Run dialog or the Command Prompt and using either GoldSim.exe or GPlayer.exe, the “GoldSim Network Slave” dialog will appear as shown in Figure 5.
Figure 5: GoldSim Network Slave dialog
Adding a Slave Computer Address to the "Master Settings"
Slaves that are started, or spawned, manually are started separately from the “Master Settings” dialog. As a result, the Master (and the “Master Settings” control dialog) does not know anything about the manually started Slaves. To tell the Master about these Slaves, a Slave Computer Address needs to be added to the “Master Settings” dialog using the “Add..” button shown in Figure 2 and Figure 7.
Figure 6: Add localhost Slave to "Master Settings"
When the “Add..” button is pressed, the dialog shown in Figure 6 is obtained. Enter “localhost” in the “Address:” field and hit “Ok” to add a Slave process on the local machine to the “Master Settings” dialog. To add a Slave process on a different machine (same Local Area Network), enter the machine name for the machine where the Slave process is already running. An example of adding a Slave process from another machine is shown in Figure 7.
Figure 7: Add a Slave process on an external machine
Connecting the Master to Manually Started Slave Processes
The next step is to connect the Master to the Slave processes. At this point, the Slave processes are manually started and the Master has been told where to find the Slave processes. The “Update Status” button on the “Master Settings” dialog (shown in Figure 2 and Figure 7) can now be used to connect the Master to the Slave processes. When the Master has successfully connected to the specified Slave processes, the Status portion of the “Master Settings” dialog will show the “Slave is running and ready” message.
Figure 8 shows the “Master Settings” dialog after the Master has successfully connected to two Slave processes. This figure also shows the corresponding “GoldSim Network Slave” dialogs for two Slaves. At this point, the simulation can be run using the “Run Simulation” button on the “Master Settings” dialog. In the “Master Settings” dialog in Figure 8, the “Slave Computer Address” is listed as localhost for both Slaves. This means that both Slave processes are running on the same machine as Master process.
Figure 8: Connected Master and Slaves
A Final Note: Slave Process Owner or User Name
When Slave processes are started manually using either the Run menu or a Command Prompt, the Slave process owner (or User name) will be the User name of the person currently logged on to the computer. This is the same User name for the GoldSim process (the Master) as shown in Figure 9. If the Slave processes need to interact with Microsoft Excel as part of the simulation, the Excel process started by the Slave process will run under the same User name as the Slave process.
Figure 9: Slave and GoldSim process User names