Starting scalar programs
There are several potential sources for issues.
MPI problem
The most common issue arises when the software reports a problem with MPI and you know your program is not using MPI.
Solution
Before you attempt to start a program, check Compiler notes and known issues and ensure that it is compiled correctly.
Select the Run Without MPI Support checkbox.
If you have selected this option and the software still refers to MPI, contact Forge Support.
Other issues starting a program
Other potential problems are:
A previous Linaro Forge session is still running, or has not released resources required for the new session. Usually this can be resolved by killing stale processes. The most obvious symptom of this is a delay of approximately 60 seconds and a message stating that not all processes are connected. You might also see a
QServerSocketmessage in the terminal.The target program does not exist or is not executable.
The backend daemon of the Linaro Forge products,
forge-backend, is missing from thebindirectory. In this case, check your installation and contact Forge Support.
Using a launcher to start scalar programs
Linaro DDT and Linaro MAP support the use of launcher commands such as mpirun or srun for debugging and profiling non-MPI programs respectively.
You can do this using the --start-at-main command line option.
Note
Whenever Linaro Forge is using a launcher like mpirun or srun, the launch is considered to be an MPI launch regardless of whether the
target is an MPI program or not. For this reason, the --no-mpi option should not be used in conjunction with --start-at-main,
since this will prevent startups with a launcher from working as expected.
--start-at-main can be used with all compatibility launches. These are launches which do not support express launch mode (see Reference table).
Currently, SLURM (MPMD) is the only scalable launch which supports --start-at-main. With this launch,
express launch mode can be used with --start-at-main (see Express Launch (DDT)).
Note
Compatibility launches may warn about being unable to find rank information when using --start-at-main. It is recommended that the
FORGE_IGNORE_MPI_RANK_ERRORS environment variable is set to 1 in this case:
FORGE_IGNORE_MPI_RANK_ERRORS=1 ddt --start-at-main --start --mpi=openmpi-compat -n 2 ./my-non-mpi-prog
The following is an example invocation of Linaro DDT for debugging a non-MPI program launched with srun:
ddt --start-at-main --start srun -n 2 ./my-non-mpi-prog
The --start-at-main option can also be used for non-MPI python scripts. In this case, the debugging or profiling session will begin
from the first line of the python script. An example invocation of Linaro DDT for debugging a non-MPI python script launched with srun
is shown below:
ddt --start-at-main --start srun -n 2 python %allinea_python_debug% ./my-non-mpi-script.py
For information about starting scalar programs with aprun, see Starting scalar programs with aprun