PMIX_ABORT(3)
π PMIX_ABORT(3) β the "okay everybody STOP" page
Hey bestie π«Ά welcome to PMIx_Abort, page 3 of the OpenPMIx manual. This is the function you call when the whole party needs to shut down right now. No cap.
β¨ NAME β¨
PMIx_Abort β abort the specified processes π
πΈ SYNOPSIS πΈ
#include <pmix.h>
pmix_status_t PMIx_Abort(int status, const char msg[],
pmix_proc_t procs[], size_t nprocs);
π ARGUMENTS π
statusβ the status value you want returned. So here's the tea: a value of zero is permitted by PMIx, but some resource managers might not actually return it. So like, it's allowed, but don't be shocked if your RM is doing its own thing. πmsgβ a string message that's gonna get displayed. That's it, that's the whole vibe.procsβ an array ofpmix_proc_tstructures that define which processes are getting aborted. Now listen: a NULL for the proc array means all processes in the caller's namespace are getting aborted. And if you drop a wildcard value for the rank inside any structure, that means all processes in that namespace are going down too. πnprocsβ the number ofpmix_proc_tstructures sitting in thatprocsarray. Count them bestie, precision matters.
π¦ DESCRIPTION π¦
So what you're doing here is requesting that the provided array of procs be aborted, returning the provided status and printing the provided message. That's the whole point. And again, for the people in the back: a NULL for the procs array indicates that all processes in the caller's namespace are to be aborted. β¨
Now, the response to this request is somewhat dependent on the specific resource manager and its configuration. For example β and this is important β some resource managers will not abort the application if the provided status is zero unless they're specifically configured to do so. So that whole thing lies outside the control of PMIx itself. It's giving "not our department." π
BUT β and this is the part where PMIx does have your back β the client will inform the RM of the request that the application be aborted, regardless of the value of the provided status. Zero, not zero, whatever. The message gets sent. Periodt.
Passing a NULL msg parameter is allowed. Totally fine. π«Ά
β οΈ Heads up though: race conditions caused by multiple processes calling PMIx_Abort are left to the server implementation to resolve. That means which status gets returned and what messages (if any) get printed is up to the server. Multiple besties screaming "STOP" at the same time, and the server has to figure out whose voice wins. π Not our problem to solve!
π₯ RETURN VALUE π₯
Returns PMIX_SUCCESS on success. π On error, you get a negative value corresponding to a PMIx errno back. Rude, but that's how it is.
π ERRORS π
PMIx errno values are defined in pmix_common.h. Go look 'em up, they're all in there. π
β SEE ALSO β
PMIx_Commit(3)PMIx_Finalize(3)PMIx_Init(3)PMIx_Initialized(3)PMIx_Put(3)pmiAddInstance(3)pmiAddMetric(3)
π COPYRIGHT π
2014-2025, OpenPMIx Community
and that's the whole page bestie!! π This was PMIX_ABORT(3) from the OpenPMIx manual, dated May 30, 2025 β the source/version and date, served fresh at the very bottom just like the original, except now it's cute. slay, go abort something responsibly πβ¨
π¦ where this page comes from
- ubuntu questing: openmpi-doc 5.0.8-8ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms