next up previous contents
Next: 5.3 Distributed Simulation on Up: 5. DISTRIBUTED SIMULATION WITH Previous: 5.1 PVM Requirement   Contents


5.2 SVMDNS Daemon

Figure 5.1: Multiple layers for distributed simulation in SVM
Image svmdnslayout.png

SVMDNS (SVM Dynamic Naming Service) is another daemon built on top of the PVM library. It provides a higher level of interface to SVM processes. For example, in Figure 5.1 there are 4 SVM processes, each of which has a DCharts component running on it. Those DCharts components communicate with each other via ports. The SVM processes register themselves to a single SVMDNS daemon. The SVMDNS daemon invokes functions in the PVM library to create 4 PVM processes, each of them correspond to an SVM process. The location of those PVM processes depends on the configuration of the PVM daemon. In this case, PVM processes 1, 2 and 3 are located on machine 1, while PVM process 4 is located on machine 2. The PVM library hides details of this configuration, but provides a uniform API to SVMDNS.

SVMDNS provides the following functionality to an SVM process:

To use SVMDNS, make sure the PVM requirement is satisfied, and compile the PYPVM (http://pypvm.sourceforge.net/) support with command ``make pypvm'' in the SVM directory. PYPVM enables access to the native PVM library from Python code.


Table 5.1: SVMDNS console
\begin{table}\begin{center}
\begin{minipage}{15cm}
\begin{verbatim}
SVM DNS Us...
...vert stop stops the DNS
»>\end{verbatim}\end{minipage} \end{center} \end{table}


The script svmdns in the SVM directory starts the SVMDNS console. The SVMDNS command prompt appears, and commands can be entered. The help command displays all the available commands and their concise descriptions (Table 5.1). Initially the SVMDNS daemon is not started. To start it, execute the ``start'' command. To close the SVMDNS console, execute ``exit''. This command does not stop the SVMDNS daemon, which keeps running in the background. Other commands are explained below:

The user may directly execute a command from the shell by running svmdns with the command as a command-line parameter. For example, to check the status, run ``svmdns check'' in the command-line; to execute an arbitrary Python statement, run ``svmdns exec "cmd"''.

File DNS in the SVM directory records the PVM ID of the SVMDNS daemon. Once the SVMDNS daemon is started, it modifies this file with its PVM ID (the return value of C function pvm_mytid()). SVM simulators use this file to locate the SVMDNS daemon. When the daemon is on another machine, the user must ensure that the content of the DNS file in its SVM directory is the same as the one on the machine where the SVM daemon is running. For a distributed simulation, there should be exactly one SVMDNS daemon running in the background. Each SVM simulator locates the same daemon with the DNS file on their own machines.


next up previous contents
Next: 5.3 Distributed Simulation on Up: 5. DISTRIBUTED SIMULATION WITH Previous: 5.1 PVM Requirement   Contents
Thomas Huining Feng
2004-04-05