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

  1. Before you attempt to start a program, check Compiler notes and known issues and ensure that it is compiled correctly.

  2. 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 QServerSocket message 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 the bin directory. 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