smpirun(1)
π smpirun β like, the manual page, bestie π
okay so you found smpirun(1) from the General Commands Manual and honestly? iconic. let's get into it. π¦
β¨ NAME β¨
smpirun β run your MPI programs inside the SimGrid simulator. no actual cluster required, we're just vibing in simulation land π
πΈ SYNOPSIS πΈ
smpirun [SMPI OPTIONS]β¦ -platform <platform.xml> -hostfile <hostfile>
program [SIMULATION OPTIONS] [PROGRAM OPTIONS]
π DESCRIPTION π
so basically, smpirun runs MPI programs that you compiled with smpicc, but on top of the simulator. that's the whole thing. that's the moment. π
like, it takes your hostfile, generates a deployment file from it if it needs one, and then launches the simulation with all the right arguments. it's designed to be easy for regular MPI users β no cap, that's literally the goal. it's giving "just works" energy. β¨
π MANDATORY PARAMETERS π
these are not optional bestie. you need these. periodt.
-platform <platform.xml>β the XML file that describes the platform you wanna deploy your program on. pls go read the online documentation for the deets. π-hostfile,-machinefile <hostfile>β the hostfile, listing every single machine that's in use. yes both spellings work, they're the same thing. π«Ά
π₯ SMPI OPTIONS π₯
sm pirun itself accepts some optional parameters β and heads up, do not mix these up with the configuration options in the next section, they're a different vibe entirely. π
-helpβ prints the usage plus a lil summary of all the available options.-keep-tempsβ do not remove the generated files after execution. they stay. they live here now. π-wrapper <command>β use command to run the program (like"valgrind","gdb --args","rr record"). you usually wanna pair this with the-foregroundoption too, so the child gets a TTY. π§-gdbβ run within GDB. it's equivalent to-wrapper "gdb --args" -keep-temps. slay.-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 which machine each process rank is mapped onto. so you know who's where.-np <numprocs>β use that many processes. by default you get the same number of processes as there are hosts in the hostfile. math is math. π-no-privatizeβ disables the privatization of global variables, which is activated by default. > β οΈ this should only be necessary if you use dynamic libraries β but honestly you should probably link statically instead of disabling this. and do not link statically against SimGrid, only against the other libraries. fr fr, read that twice.-traceβ activate the trace mechanism if it's available. equivalent to--cfg=tracing:yes --cfg=tracing/smpi:yes.-trace-tiβ activate time independent tracing.-trace-comment <comment>β put a comment at the top of the trace file.-trace-comment-file <file>β insert the content of 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 one's useful for making tests reproducible. π-versionβ displays the SimGrid version (the human readable one).-git-versionβ displays the git hash of SimGrid.
π SIMULATION OPTIONS π
you can change so many simulation parameters right from the command line by passing --cfg=parameter:value after the program name. the full list of existing parameters and what they mean lives at https://simgrid.org/doc/latest/Configuring_SimGrid.html β go look, there's a lot. π
here are some options commonly used with SMPI:
--cfg=smpi/cpu-threshold:XXXβ only simulate computation chunks that last more thanXXXseconds.--cfg=smpi/simulate-computation:noβ disable the simulation of all computation chunks (which are still executed on the host machine, fyi).
π«Ά AUTHORS π«Ά
The SimGrid team. (the whole squad, love them)
π 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)
and that's the whole page, bestie β this was smpirun(1) from the General Commands Manual, and yes the footer says smpirun(1) again because the manpage format is nothing if not consistent. π
β¨
π¦ where this page comes from
- debian trixie: libsimgrid-dev 4.0-1+b1 Β· LGPL-2.1-only
- ubuntu questing: libsimgrid-dev 4.0-1build2
- ubuntu resolute: libsimgrid-dev 4.1-1build2 Β· LGPL-2.1-only
- ubuntu stonking: libsimgrid-dev 4.1-3 Β· LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms