smpirun(1)

NAME
smpirun - Execute MPI programs in the SimGrid simulator

SYNOPSIS
smpirun [SMPI OPTIONS]… -platform <platform.xml> -hostfile <hostfile> program [SIMULATION OPTIONS] [PROGRAM OPTIONS]

DESCRIPTION
smpirun can run MPI programs that were compiled with smpicc on top of the simulator. Basically, it generates a deployment file from the provided hostfile (if needed), and launches the simulation with the right arguments. It is intended to be easy to use to regular MPI users.

MANDATORY PARAMETERS

-platform <platform.xml>
    XML file describing the platform on which we want to deploy the program. Please refer to the online documentation. (https://simgrid.org/doc/latest/Tutorial_MPI_Applications.html#describing-your-platform)

-hostfile, -machinefile <hostfile>
    Hostfile listing all the machines in use

SMPI OPTIONS
The smpirun itself accepts some optional parameters, that are not to be mixed with the configuration options described in the next section.

-help
    Print the usage and a summary of the available options.

-keep-temps
    Do not remove the generated files after execution.

-wrapper <command>
    Use command to run the program (e.g. "valgrind", "gdb --args", "rr record"). You usually want to use the "-foreground" option as well in order to have a TTY.

-gdb
    Run within GDB (equivalent to -wrapper "gdb --args" -keep-temps).

-lldb
    Run within LLDB (equivalent to -wrapper "lldb --" -keep-temps).

-vgdb
    Run within Valgrind+GDB (equivalent to -wrapper "valgrind --vgdb=yes --vgdb-error=0" -keep-temps).

-foreground
    Run the child process in the foreground. This gives the child process access to the TTY.

-map
    Display the machine on which each process rank is mapped.

-np <numprocs>
    Use that amount of processes. By default, there is the same number of processes as there are of hosts in the hostfile.

-no-privatize
    Disable the privatization of global variables, that is activated by default. This should only be necessary if you use dynamic libraries, but you should probably link statically instead of disabling this. Do not link statically against SimGrid, only against the other libraries.

-trace
    Activate the trace mechanism if available (equivalent to --cfg=tracing:yes --cfg=tracing/smpi:yes)

-trace-ti
    Activate time independent tracing.

-trace-comment <comment>
    Put a comment on the top of the trace file.

-trace-comment-file <file>
    Insert the content of the file at the head of the trace file as a comment.

-trace-grouped
    Group MPI processes by location.

-trace-resource
    Trace resource utilization.

-trace-file <tracefile>
    Name of the tracefile

-replay <tracefile>
    Replay a trace instead of actually executing an application.

-quiet
    Reduce output verbosity. This is useful to make tests reproducible.

-version
    Displays the SimGrid version (human readable).

-git-version
    Displays the git hash of SimGrid.

SIMULATION OPTIONS
You can change many simulation parameters on command line by passing
    --cfg=parameter:value after the program name. A full list of the existing parameters and their meaning can be found at https://simgrid.org/doc/latest/Configuring_SimGrid.html

    Here are some options commonly used with SMPI:

--cfg=smpi/cpu-threshold:XXX
    Only simulate computation chunks that last more than XXX seconds.

--cfg=smpi/simulate-computation:no
    Disable the simulation of all computation chunks (that are still executed on the host machine).

AUTHORS
The SimGrid team

COPYRIGHT AND LICENCE
Copyright (c) 2014-2025. The SimGrid Team. All rights reserved.

This program is free software; you may redistribute it and/or modify it under the terms of GNU LGPL (v2.1) license.

SEE ALSO
smpicc(1) smpicxx(1) smpiff(1) smpif90(1)