MPITASK(1)
π MPITASK(1) β bestie's guide to peeping on your MPI processes π
okay so real talk: this is the mpitask command from the LAM COMMANDS manual. she's your little window into what every MPI process is doing right now, and honestly? she ate. π
β¨ SYNOPSIS β¨
mpitask [-cdh] [-gps] [nodes] [processes]
π OPTIONS π
-cβ print communicator descriptions. see "Communicators" below, bestie. π¬-dβ print datatype descriptions. see "Datatypes". π’-gpsβ print process info in GPS format. yes it's giving navigation but it's not, iykyk. π°οΈ-hβ print useful info on this command. the classic "help me" flag, love her. πββοΈ
π¨ heads up:-cand-dare mutually exclusive. you literally cannot have both. pick a lane. π
πΈ DESCRIPTION πΈ
The mpitask command shows you the tea on processes that are using MPI. one line gets printed per reported MPI process β no more, no less. and if you don't specify any processes or nodes on the command line? she reports all MPI processes on all nodes. full send. π
% mpitask
TASK (G/L) FUNCTION PEER|ROOT TAG COMM COUNT DATATYPE
0/0 trivial Ssend 1/1 123 WORLD 64 INT
1/1 trivial Recv 0/0 456 WORLD 64 INT
so for each process, mpitask normally prints the following, and here's the breakdown:
- TASK β an ID for the process. if the process is currently communicating, you also get a
/followed by the process's rank within the current communicator. the executable name, if it's available, shows up too. see "MPI Process Identification" below. π·οΈ - FUNCTION β an abbreviated version of the function name if the process is blocked inside an MPI function. otherwise you get one of these execution states instead:
runningβ free to run on the underlying OS. living her best life. πββοΈpausedβ blocked onlam_kpause(2).stoppedβ stopped by the LAM signal,LAM_SIGARREST. seedoom(1). π (yes really, that's the name)blockedβ blocked in a LAM function. in general this should be a transitory state. if you want more info on a LAM process's state you can usestate(1).
- PEER|ROOT β the source or destination of a point-to-point communication, or the root process of certain collective communications, followed by a
/and the process's rank within the current communicator. π€ - TAG β the message tag, if any, that was specified as a parameter to the current MPI function. π
- COMM β the communicator ID, if any, that was specified as a parameter to the current MPI function. communicators used in collective calls get displayed with a
*suffix. want more communicator info? that's the-coption. β - COUNT β the element count, if any, that was specified as a parameter to the current MPI function. π’
- DATATYPE β the element datatype, if any, that was specified as a parameter to the current MPI function. for intrinsic datatypes, you get a shortened version of the datatype name. for derived datatypes, you get a datatype label. more datatype info? that's the
-doption. π§¬
π¦ MPI Process Identification π¦
By default, MPI processes are identified by their rank in MPI_COMM_WORLD. we call this rank the "global" rank (G), because why say more words. the rank within the currently employed communicator is the "local" rank (L). β¨
Now β because processes can be dynamically spawned (see MPIL_Spawn(2)) and because multiple concurrent MPI applications are allowed, it is possible for multiple MPI_COMM_WORLD communicators to coexist. and in those situations?? the global rank is no longer globally unique and the identification becomes ambiguous. π not the identity crisis.
so LAM provides an alternate way of identifying MPI processes: the GPS (Global Positioning System). a process's GPS consists of the nodeid the process is running on, plus the process's LAM index on that node. it's displayed in mpitask as the pair nnode,iindex. and if the -gps option is given, then the GPS is substituted for the global rank (G). slay. π°οΈπ
π¬ Communicators π¬
If the -c option is given, then info is no longer displayed in that horizontal format we described above. instead, for each selected process currently using a communicator, you get the info from the TASK column (described above) followed by an expanded description of the communicator. that description includes the size of the communicator group(s) and the global identifiers of all members of the group(s). the whole squad, listed. π―ββοΈ
π’ Datatypes π’
If the -d option is given, then info is no longer displayed in that horizontal format described above. instead, for each selected process currently using a communicator, you get the info from the TASK column (described above) followed by the datatype's type map. πΊοΈ
π EXAMPLES π
mpitaskβ display the status of all MPI processes on all nodes. the full tour. πmpitask -c n0 i9β display the communicator (if any) of process index 9 on node 0. very specific, very demure. π―
π₯ DIAGNOSTICS π₯
If no MPI processes are found, only the title line is displayed. that's it. that's the whole thing. sometimes the group chat is just quiet. π
π BUGS π
Sometimes processes may be shown as blocked inside a non-blocking MPI function. this happens when the process is blocked inside the MPI function on some internal LAM event. such states are highly transitory, so don't spiral about it. π
π SEE ALSO π
doom(1), libmpi(3), mpirun(1), mpimsg(1), state(1), MPIL_Comm_id(2), MPIL_Type_id(2)
okay bestie that's the whole page, every flag, every column, every vibe. go forth and monitor. π«Άβ¨
this was LAM 7.1.4, from July, 2007 β yes she's vintage, yes she's still iconic. π
π¦ where this page comes from
- debian bookworm: lam-runtime 7.1.4-7+b1
- debian trixie: lam-runtime 7.1.4-7.2
- ubuntu jammy: lam-runtime 7.1.4-7
- ubuntu noble: lam-runtime 7.1.4-7.1build2
- ubuntu questing: lam-runtime 7.1.4-8
- ubuntu resolute: lam-runtime 7.1.4-8build1
- ubuntu stonking: lam-runtime 7.1.4-8build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms