MPI_T_PVAR_GET_INFO(3)

πŸ‘‘ MPI_T_PVAR_GET_INFO(3) πŸ‘‘

okay so bestie, this is the MPI_T_PVAR_GET_INFO(3) page from the Open MPI manual and it's genuinely so good. we're querying info from a performance variable, no big deal, just a lil gossip session with your MPI implementation. πŸ’…


🌸 NAME 🌸

MPI_T_pvar_get_info β€” Query information from a performance variable

the way this function literally just asks the implementation "hey girl, tell me everything about this performance variable" and the implementation delivers. we love a communicative king. 🫢


✨ SYNTAX ✨

πŸ’œ C Syntax

#include <mpi.h>

int MPI_T_pvar_get_info(int pvar_index, char *name, int *name_len,
                        int *verbosity, int *var_class, MPI_Datatype *datatype, MPI_T_enum *enumtype,
                        char *desc, int *desc_len, int *bind, int *readonly, int *continuous,
                        int *atomic)

look at all those pointers. it's giving "i need you to fill in every single one of these for me" energy and honestly? valid. πŸ”₯


πŸŽ€ INPUT PARAMETERS πŸŽ€

  • pvar_index β€” the index of the performance variable we're snooping on. that's the one you're asking about, bestie. πŸ’–

πŸ¦‹ INPUT/OUTPUT PARAMETERS πŸ¦‹

these ones you fill in going in and the function fills in coming out. dual purpose icons, honestly. ✨

  • name_len β€” the length of the string and/or the buffer for name.
  • desc_len β€” the length of the string and/or the buffer for desc.

🌈 OUTPUT PARAMETERS 🌈

everything the function hands back to you. it's giving gift bag at the end of a party. 🎁

  • name β€” buffer where the string containing the name of the performance variable comes back.
  • verbosity β€” the verbosity level of this variable.
  • var_class β€” the class of the performance variable.
  • datatype β€” the MPI datatype of the info stored in the performance variable.
  • enumtype β€” an optional descriptor for enumeration info.
  • desc β€” buffer where the string containing the description of the performance variable comes back.
  • bind β€” the type of MPI object this variable must be bound to.
  • readonly β€” flag saying whether the variable can be written/reset.
  • continuous β€” flag saying whether the variable can be started and stopped, or whether it's continuously active.
  • atomic β€” flag saying whether the variable can be atomically read and reset.

πŸ’– DESCRIPTION πŸ’–

MPI_T_pvar_get_info can be used to query information from a performance variable. no cap, that's literally its whole job and it does it flawlessly.

the function returns the verbosity, class, datatype, enumeration type, and binding of the queried control variable in the arguments verbosity, var_class, datatype, enumtype, and bind respectively. and the flags telling you whether the variable is read-only, continuous, or atomic come back in readonly, continuous, and atomic accordingly. 🫢

see MPI-3 section 14.3.7 for more information. and see the man page for MPI_T_cvar_get_info for the whole rundown on variable verbosity β€” it's the sibling page, they're in the same friend group. πŸ‘‘


πŸ‘‘ VARIABLE CLASS πŸ‘‘

performance variables are categorized into classes which describe their initial value, valid types, and behavior. the class that comes back in the var_class parameter may be one of these bad boys:

  • MPI_T_PVAR_CLASS_STATE β€” the variable represents a set of discrete states that may be described by an enumerator. variables of this class must be represented by an MPI_INT. the starting value is the current state of the variable.
  • MPI_T_PVAR_CLASS_LEVEL β€” the variable represents the current utilization level of a resource. variables of this class must be represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, or MPI_DOUBLE. the starting value is the current utilization level of the resource.
  • MPI_T_PVAR_CLASS_SIZE β€” the variable represents the fixed size of a resource. variables of this class are represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, or MPI_DOUBLE. the starting value is the current size of the resource.
  • MPI_T_PVAR_CLASS_PERCENTAGE β€” the variable represents the current percentage utilization level of a resource. variables of this class are represented by an MPI_DOUBLE. the starting value is the current percentage utilization of the resource.
  • MPI_T_PVAR_CLASS_HIGHWATERMARK β€” the variable represents the high watermark of the utilization of a resource. variables of this class are represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, or MPI_DOUBLE. the starting value is the current utilization of the resource.
  • MPI_T_PVAR_CLASS_HIGHWATERMARK β€” the variable represents the low watermark of the utilization of a resource. variables of this class are represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, or MPI_DOUBLE. the starting value is the current utilization of the resource.
bestie i'm not gonna lie to you, the page literally lists MPI_T_PVAR_CLASS_HIGHWATERMARK twice right here, the second one being the low watermark. i am simply the messenger. i did not write it. i am reporting it faithfully. πŸ’€
  • MPI_T_PVAR_CLASS_COUNTER β€” the variable represents a count of the number of occurrences of a specific event. variables of this class are represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, or MPI_UNSIGNED_LONG_LONG. the starting value is 0.
  • MPI_T_PVAR_CLASS_COUNTER β€” the variable represents an aggregated value that represents a sum of arguments processed during a specific event. variables of this class are represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, or MPI_DOUBLE. the starting value is 0.
and yes, MPI_T_PVAR_CLASS_COUNTER is ALSO listed twice with two different meanings. iconic behavior honestly, i'm just relaying the lore exactly as it was given to me πŸ™ˆ
  • MPI_T_PVAR_CLASS_TIMER β€” the variable represents the aggregated time spent by the MPI implementation while processing an event, type of event, or section of code. variables of this class are represented by an MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, or MPI_DOUBLE. if the variable is represented by an MPI_DOUBLE the units will be the same as those used by MPI_Wtime(). the starting value is 0.
  • MPI_T_PVAR_CLASS_GENERIC β€” the variable does not fit into any other class. can be represented by any type supported by the MPI tool information interface (see DATATYPE below). the starting value is variable specific.

for more information see MPI-3 section 14.3.7. ✨


🧚 DATATYPE 🧚

the datatype returned by MPI_T_pvar_get_info is restricted to one of the following datatypes: MPI_INT, MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_UNSIGNED_LONG_LONG, MPI_COUNT, MPI_CHAR, and MPI_DOUBLE.

for more information on datatypes in the MPI Tool information interface see MPI-3 section 14.3.5. 🌸


πŸ“ BINDING πŸ“

performance variables may be bound to an MPI object. the binding returned in the bind parameter may be one of the following:

  • MPI_T_BIND_NO_OBJECT β€” no object
  • MPI_T_BIND_MPI_COMM β€” MPI communicator
  • MPI_T_BIND_MPI_DATATYPE β€” MPI datatype
  • MPI_T_BIND_MPI_ERRHANDLER β€” MPI error handler
  • MPI_T_BIND_MPI_FILE β€” MPI file handle
  • MPI_T_BIND_MPI_GROUP β€” MPI group
  • MPI_T_BIND_MPI_OP β€” MPI reduction operator
  • MPI_T_BIND_MPI_REQUEST β€” MPI request
  • MPI_T_BIND_MPI_WIN β€” MPI window for one-sided communication
  • MPI_T_BIND_MPI_MESSAGE β€” MPI message object
  • MPI_T_BIND_MPI_INFO β€” MPI info object

for more information see MPI-3 section 14.3.2. πŸ’œ


πŸ’… NOTES πŸ’…

this MPI tool interface function returns two strings. and for each string it takes two arguments: a buffer to store the string, and a length which must initially specify the size of the buffer.

if the length passed is n then this function will copy at most n - 1 characters of the string into the corresponding buffer and set the length to the number of characters copied - 1. if the length argument is NULL or the value specified in the length is 0 the corresponding string buffer is ignored and the string is not returned. periodt.

for more information see MPI-3 section 14.3.3. ⭐


😭 ERRORS 😭

MPI_T_pvar_get_info will fail if:

  • MPI_T_ERR_NOT_INITIALIZED β€” the MPI Tools interface not initialized
  • MPI_T_ERR_INVALID_INDEX β€” the performance variable index is invalid
lowkey check your init before you come for this function bestie, it cannot help you if the tools interface isn't awake yet πŸ™ˆ

πŸ”₯ SEE ALSO πŸ”₯

  • MPI_T_cvar_get_info

2003-2026, The Open MPI Community


and that's the whole page!! πŸ₯³ mwah, you ate it, you understood the assignment, no cap. sending you off with all the love in the world β€” this was the Open MPI manual, MPI_T_PVAR_GET_INFO(3), dated Sep 10, 2026. go query those performance variables, bestie, you're the main character of this tool interface πŸ’–βœ¨πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from