smpirun(1)

πŸ“¦
version 4.1 Β· 4 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’… 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 -foreground option 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 than XXX seconds.
  • --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 (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