Configuration Properties for the MPI Cluster Debugger
The MPI Cluster Debugger configuration properties let you define how to run your debugging session. This information is used for the following tasks:
To select the cluster and the nodes on which to run the debugging session
To specify the number of processes to run
To specify deployment information
To specify pre-debug and post-debug scripts
The following table describes the configuration properties for the MPI cluster debugger:
MPI Cluster Debugger configuration properties
Property | Description | Default Value |
---|---|---|
Run Environment |
Specifies the head node to use when launching the debugger on the cluster, the number of MPI processes to start, and optionally, the allocation of processes per compute node. To request specific nodes and selectively allocate processes, select Edit Hpc Node from the Run Environment drop-down list. This opens the Node Selector dialog box. For additional considerations, see Specific node selection and the -hosts parameter. Alternately, specify localhost/<number of processes> to launch the debugger locally.
Note:
The resource selection that is specified in this property overrides any resource allocations that are specified in the job description file.
|
localhost/1 |
Deployment Directory |
Specifies the directory in which the project output files will be copied when the debugger starts. This directory is generally on the cluster head node, and it must be a network share that can be read by all of the compute nodes that are participating in the debugging session, for example: The CcpSpoolDir directory share is created when HPC Pack 2008 is installed on the head node. If the Deployment Directory does not exist and you have write permissions in the root directory that is specified, the Deployment Directory is created automatically. |
Local debugging: None Cluster debugging: \\headnode\CcpSpoolDir\$(UserName)\$(ProjectName) |
Working Directory |
Specifies the working directory that is used by each process. This is where the executable runs. During cluster debugging, if this is different than the Deployment Directory, the files from the Deployment Directory are copied into the working directories on the compute nodes. |
Local debugging: The output directory for the Visual Studio project. Cluster debugging: The %tmp% directory. |
Application Command |
Specifies the application name or the application path that MPI runs on each cluster node (this is the application that you are debugging in Visual Studio). The path can be a shared resource or a local path. The debugger copies the application file to the deployment folder. |
$(TargetFileName) |
Application Arguments |
Specifies arguments that you want to pass to the application. |
None |
MPIShim Location |
Specifies the full path to the MPIshim executable file on your development computer. Visual Studio attempts to copy MPIshim from this location to the Deployment Directory. MPIshim is included with Visual Studio and is installed with the remote debugging components to enable parallel debugging. You can provide a value for this property as part of a fully customized launch of the MPI Cluster Debugger. |
%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger |
MPIExec Command |
Specifies the full path to the MPI program that coordinates the launch of your MPI application. If you have another MPI library implementation installed on your compute nodes, and you want to use the associated MPI stack to launch your application, use this property to specify the full path to that executable on each compute node. If the path is not identical on each node, then you must include MPIexec.exe and its dependent libraries in the Additional Files to Deploy property for the debugger. If the MPI stack that you specify does not support the -hosts parameter, you may encounter runtime errors in specific circumstances. For more information, see Specific node selection and the -hosts parameter. |
MPIexec.exe |
Additional MPIExec Arguments |
Specifies additional arguments to pass to MPIexec.exe. For example, you can use additional arguments to set environment variables for the processes that are launched by MPIexec.exe. If you specify the -hosts parameter, you may encounter runtime errors in specific circumstances. For more information, see Specific node selection and the -hosts parameter. For more information about the MPIexec command, see mpiexec Command Reference (https://go.microsoft.com/fwlink/?LinkId=144910). |
None |
MPI Network Security Mode |
Specifies the IP addresses that are allowed to connect to the current instance of Visual Studio. There are three security modes:
|
Accept connections from any address |
MPI Network Filter |
Specifies the IP address range from which to accept connections. Specify the starting IP address and the subnet mask for this range. For example, a network filter of 192.168.0.1/255.255.255.0 includes all the addresses between 192.168.0.1 and 192.168.0.254.
Note:
To apply this filter, in MPI Network Security Mode, select Accept connections from a specified range of addresses.
|
None |
Debugger Type |
Specifies the debugger type for the code you are running: native, managed, mixed, or script. |
Auto The debugger type is selected based on the content of the .exe file. |
Job Description File |
Specifies the path to the job description file (XML) that contains tasks to add to the debugging job. The tasks specified in this file are added before the tasks that the debugger creates (the debugger creates a deployment, a debugging, and a clean-up task).
Note:
The resources that you select in the cluster debugger properties override any resource allocations specified in the job description file.
To create a job description file from a new or queued job in the HPC Job Manager console, in the New Job or the View Job dialog box, click Save Job as. |
None |
Additional Files to Deploy |
Specifies files and directories to be copied to the Deployment Directory, in addition to those required by the project and its dependencies. |
None |
Scheduler Timeout (ms) |
Specifies the length of time (in milliseconds) that the debugger attempts to contact a head node. After this period, the head node is not considered valid. |
5000 milliseconds |
Deploy CRT |
Specifies whether Visual Studio deploys the C Runtime (CRT) assemblies with the application. If Yes is specified, the CRT assemblies are deployed with the application. If No is specified, the CRT assemblies are not deployed with the application. If your multithreaded debug dynamic-link libraries (DLLs) are statically linked, you do not need to deploy the CRT files. If your multithreaded debug DLLs are dynamically linked, you need to deploy the CRT files. |
Yes |
Cleanup Deployment |
Specifies whether Visual Studio will delete the Deployment Directory after debugging. If Yes is specified, the Deployment Directory is deleted and the shared resource is removed when the debugger stops.
Note:
The Deployment Directory is not deleted if it contains files other than those put there by Visual Studio. For example, if your application produces output to the Deployment Directory, you should use a post-debug script to delete the directory.
If No is specified, the Deployment Directory is not deleted. |
Yes |
Pre-Debug Script |
Specifies the path to the script to run before debugging. The script runs in the same computer where Visual Studio is running. For example, you can use a pre-debug script to stage data for your application on the nodes or to adjust the firewall settings on the cluster to allow the remote debugger. |
None |
Pre-Debug Script Arguments |
Specifies the argument string that is passed to the pre-debug script. |
None |
Post-Debug Script |
Specifies the path to the script to run after debugging stops. For example, you can use a post-debug script to clean up staged data or the output files that are produced by your application or to adjust the firewall settings on the cluster to disallow the remote debugger after your debugging session. |
None |
Post-Debug Script Arguments |
Specifies the argument string that is passed to the post-debug script. |
None |
Specific node selection and the -hosts parameter
When you configure the MPI Cluster Debugger, you must specify the cluster to use, and the number of processes to launch. Optionally, you can select specific nodes to use for the debugging session.
The MPI Cluster Debugger uses the -hosts parameter with the MPIexec command to place the processes when both of the following conditions are true:
You select specific nodes to use for the debugging session.
The number of processes that you selected is smaller than the number of resources on the required nodes.
If you request specific nodes and the total number of resources on the required nodes is greater than the number of processes that you specified, the debugger uses the -hosts parameter to place the processes. For example, if you select two nodes (NODE01 and NODE02) with four cores each, and specify that you want to launch six processes, the debugger passes the following argument to MPIexec.exe: -hosts 2 NODE01 4 NODE2 2
.
Note
If the MPI Cluster Debugger uses the -hosts parameter to place the processes, a runtime error occurs if either of the following conditions is true:
- You have specified an MPI stack that does not support the -hosts parameter.
- You have specified the -hosts parameter in the Additional MPIExec Arguments property.
See Also
Concepts
How to: Configure and Launch the MPI Cluster Debugger
Walkthrough: Launching the MPI Cluster Debugger in Visual Studio 2010
Debugging MPI Applications on an HPC Cluster