Commits

Jeff Squyres committed 1ce4004

Up to SVN r28945

Comments (0)

Files changed (50)

ompi/mca/btl/usnic/btl_usnic_ack.c

     endpoint = seg->ss_parent_frag->sf_endpoint;
     module = endpoint->endpoint_module;
 
-#if MSGDEBUG1
+#if MSGDEBUG2
     {
         static int num_timeouts = 0;
         opal_output(0, "Send timeout!  seg %p, room %d, seq %" UDSEQ "\n",

ompi/mca/btl/usnic/btl_usnic_component.c

         /* Find the max payload this port can handle */
         module->max_frag_payload =
             module->if_mtu - /* start with the MTU */
+            sizeof(ompi_btl_usnic_protocol_header_t) -
             sizeof(ompi_btl_usnic_btl_header_t); /* subtract size of
                                                     the BTL header */
         /* same, but use chunk header */
                         if (cwc->byte_len <
                              (sizeof(ompi_btl_usnic_protocol_header_t)+
                               sizeof(ompi_btl_usnic_btl_header_t))) {
-                        BTL_ERROR(("RX error polling CQ with status %d for wr_id %" PRIx64 " vend_err %d, byte_len %d (%d of %d)",
-                               cwc->status, cwc->wr_id,
+                        BTL_ERROR(("RX error polling CQ[%d] with status %d for wr_id %" PRIx64 " vend_err %d, byte_len %d (%d of %d)",
+                               c, cwc->status, cwc->wr_id,
                                cwc->vendor_err,
                                j, num_events, cwc->byte_len));
+abort();
                         } else {
                             /* silently count CRC errors */
                             ++module->num_crc_errors;

ompi/mca/btl/usnic/btl_usnic_send.c

             (int)frag->sf_base.uf_src_seg[0].seg_len,
             frag->sf_base.uf_src_seg[1].seg_addr.pval,
             (int)frag->sf_base.uf_src_seg[1].seg_len);
-    opal_output(0, "  inline seg  %d segs %p(%d) + %p(%d)\n",
+    opal_output(0, "  small seg  %d segs %p(%d) + %p(%d)\n",
             sseg->ss_send_desc.num_sge,
             (void *)sseg->ss_send_desc.sg_list[0].addr,
             sseg->ss_send_desc.sg_list[0].length,

ompi/mca/btl/usnic/btl_usnic_util.c

             /* Since verbs doesn't offer a way to get standard
                Ethernet MTUs (as of libibverbs 1.1.5, the MTUs are
                enums, and don't inlcude values for 1500 or 9000), look
-               up the MTU in the corresponding enic interface.
-               Subtract 40 off the MTU value so that we provide enough
-               space for the GRH on the remote side. */
-            module->if_mtu -= 40;
+               up the MTU in the corresponding enic interface. */
             module->local_addr.mtu = module->if_mtu;
 
             inet_ntop(AF_INET, &(module->if_ipv4_addr),

ompi/mca/sharedfp/addproc/.ompi_ignore

Empty file added.

ompi/mpi/man/man3/MPI_T_category_changed.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_category_changed 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_category_changed\fP \- Get a timestamp for the categories
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_category_changed(int *\fIstamp\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+stamp
+A virtual time stamp to indicate the last change to the categories.
+
+.SH DESCRIPTION
+.ft R
+If two subsequent calls to this routine return the same timestamp, it is guaranteed that
+no categories have been changed or added. If the timestamp from the second call is
+higher than some categories have been added or changed.
+
+.SH ERRORS
+.ft R
+MPI_T_category_changed() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized

ompi/mpi/man/man3/MPI_T_category_get_categories.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_category_get_categories 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_category_get_categories\fP \- Query which categories are in a category
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_category_get_categories(int cat_index, int len, int indices[])
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+cat_index
+Index of the category to be queried.
+.TP 1i
+len
+The length of the indices array.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+indices
+An integer array of size len, indicating category indices.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_category_get_categories can be used to query which other categories are in
+a category.
+
+.SH ERRORS
+.ft R
+MPI_T_category_get_categories() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The category index is invalid

ompi/mpi/man/man3/MPI_T_category_get_cvars.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_category_get_cvars 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_category_get_cvars\fP \- Query which control variables are in a category
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_category_get_cvars(int \fIcat_index\fP, int \fIlen\fP, int \fIindices\fP[])
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+cat_index
+Index of the category to be queried.
+.TP 1i
+len
+The length of the indices array.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+indices
+An integer array of size len, indicating control variable indices.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_category_get_cvars can be used to query which control variables are contained in a
+particular category.
+
+.SH ERRORS
+.ft R
+MPI_T_category_get_cvars() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The category index is invalid

ompi/mpi/man/man3/MPI_T_category_get_info.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_category_get_info 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_category_get_info\fP \- Query information from a category
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_category_get_info(int \fIcat_index\fP, char *\fIname\fP, int *\fIname_len\fP,
+char *\fIdesc\fP, int *\fIdesc_len\fP, int *\fInum_cvars\fP, int *\fInum_pvars\fP,
+int *\fInum_categories\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+cat_index
+Index of the category to be queried.
+
+.SH INPUT/OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name_len
+Length of the string and/or buffer for name.
+.TP 1i
+desc_len
+Length of the string and/or buffer for desc.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name
+Buffer to return the string containing the name of the
+category.
+.TP 1i
+desc
+Buffer to return the string containing the description
+of the category.
+.TP 1i
+num_cvars
+Number of control variables in the category.
+.TP 1i
+num_pvars
+Number of performance variables in the category.
+.TP 1i
+num_categories
+Number of categories contained in the category.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_category_get_info can be used to query information from a category. The function returns the
+number of control variables, performance variables, and sub-categories in the queried category in
+the arguments \fInum_cvars\fP, \fInum_pvars\fP, and \fInum_categories\fP, respectively.
+
+.SH NOTES
+.ft R
+This MPI tool interface function returns two strings. This function takes two argument for each string:
+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.
+
+.SH ERRORS
+.ft R
+MPI_T_category_get_info() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The category index is invalid

ompi/mpi/man/man3/MPI_T_category_get_num.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_category_get_num 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_category_get_num\fP \- Query the number of categories
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_category_get_num(int *\fInum_cat\fP)
+
+.fi
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+num_cat
+Current number of categories
+
+.SH DESCRIPTION
+.ft R
+MPI_T_category_get_num can be used to query the current number of categories.
+
+.SH ERRORS
+.ft R
+MPI_T_category_get_num() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized

ompi/mpi/man/man3/MPI_T_category_get_pvars.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_category_get_pvars 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_category_get_pvars\fP \- Query which performance variables are in a category
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_category_get_pvars(int cat_index, int len, int indices[])
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+cat_index
+Index of the category to be queried.
+.TP 1i
+len
+The length of the indices array.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+indices
+An integer array of size len, indicating performance variable indices.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_category_get_pvars can be used to query which performance variables are
+contained in a particular category. A category contains zero or more performance variables.
+
+.SH ERRORS
+.ft R
+MPI_T_category_get_pvars() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The category index is invalid
+.

ompi/mpi/man/man3/MPI_T_cvar_get_info.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_cvar_get_info 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_cvar_get_info\fP \- Query information from a control variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_cvar_get_info(int \fIcvar_index\fP, char *\fIname\fP, int *\fIname_len\fP,
+                        int *\fIverbosity\fP, MPI_Datatype *\fIdatatype\fP, MPI_T_enum *\fIenumtype\fP,
+                        const *\fIdesc\fP, int *\fIdesc_len\fP, int *\fIbind\fP, int *\fIscope\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+cvar_index
+Index of the control variable to be queried.
+.
+.
+.SH INPUT/OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name_len
+Length of the string and/or buffer for name.
+.TP 1i
+desc_len
+Length of the string and/or buffer for desc.
+.
+.
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name
+Buffer to return the string containing the name of the
+control variable.
+.TP 1i
+verbosity
+Verbosity level of this variable.
+.TP 1i
+datatype
+MPI datatype of the information stored in the control
+variable.
+.TP 1i
+enumtype
+Optional descriptor for enumeration information.
+.TP 1i
+desc
+Buffer to return the string containing the description
+of the control variable.
+.TP 1i
+bind
+Type of MPI object to which this variable must be
+bound.
+.TP 1i
+scope
+Scope of when changes to this variable are possible.
+.
+.
+.SH DESCRIPTION
+.ft R
+MPI_T_cvar_get_info can be used to query information about a control variable. The function returns
+the verbosity, datatype, enumeration type, binding, and scope of the queried control variable in the arguments
+\fIverbosity\fP, \fIdatatype\fP, \fIenumtype\fP, \fIbind\fP, and \fIscope\fP, respectively. Control variables
+in Open MPI are the same as MCA parameters.
+.
+.
+.SH VERBOSITY
+.ft R
+As Open MPI exposes a very large number of MCA parameters (control variables), control variables are
+categorized into nine verbosity levels corresponding to the equivalent ompi_info level. The nine levels are
+(in increasing order):
+.TP 1i
+MPI_T_VERBOSITY_USER_BASIC
+Basic information of interest to users
+.TP 1i
+MPI_T_VERBOSITY_USER_DETAIL
+Detailed information of interest to users
+.TP 1i
+MPI_T_VERBOSITY_USER_ALL
+All remaining information of interest to users
+.TP 1i
+MPI_T_VERBOSITY_TUNER_BASIC
+Basic information required for tuning
+.TP 1i
+MPI_T_VERBOSITY_TUNER_DETAIL
+Detailed information required for tuning
+.TP 1i
+MPI_T_VERBOSITY_TUNER_ALL
+All remaining information required for tuning
+.TP 1i
+MPI_T_VERBOSITY_MPIDEV_BASIC
+Basic information for MPI implementors
+.TP 1i
+MPI_T_VERBOSITY_MPIDEV_DETAIL
+Detailed information for MPI implementors
+.TP 1i
+MPI_T_VERBOSITY_MPIDEV_ALL
+All remaining information for MPI implementors
+
+For more information see MPI-3 \[char167] 14.3.1.
+
+.SH DATATYPE
+.ft R
+The datatype returned by MPI_T_cvar_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 MPI_T see MPI-3 \[char167] 14.3.5.
+
+.SH SCOPE
+.ft R
+The scope describes when and how changes can be made to a control variable. From MPI-3 \[char167] 14.3.6, the scope may be any of the following:
+.TP 1i
+MPI_T_SCOPE_CONSTANT
+read-only, value is constant
+.TP 1i
+MPI_T_SCOPE_READONLY
+read-only, cannot be written, but can change
+.TP 1i
+MPI_T_SCOPE_LOCAL
+may be writeable, writing is a local operation
+.TP 1i
+MPI_T_SCOPE_GROUP
+may be writeable, must be done to a group of processes, all processes in a group must be set to consistent values
+.TP 1i
+MPI_T_SCOPE_GROUP_EQ
+may be writeable, must be done to a group of processes, all processes in a group must be set to the same value
+.TP 1i
+MPI_T_SCOPE_ALL
+may be writeable, must be done to all processes, all connected processes must be set to consistent values
+.TP 1i
+MPI_T_SCOPE_ALL_EQ
+may be writeable, must be done to all processes, all connected processes must be set to the same value
+
+For more information see MPI-3 \[char167] 14.3.6 Table 14.4.
+
+.SH NOTES
+.ft R
+This MPI tool interface function returns two strings. This function takes two argument for each string:
+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.
+.sp
+Open MPI does not currently support binding control variables to MPI objects.
+.
+.
+.SH ERRORS
+.ft R
+MPI_T_cvar_get_info() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The control variable index is invalid
+.
+.SH SEE ALSO
+.ft R
+.nf
+ompi_info

ompi/mpi/man/man3/MPI_T_cvar_get_num.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_cvar_get_num 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_cvar_get_num\fP \- Query the number of control variables
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_cvar_get_num(int *\fInum_cvar\fP)
+
+.fi
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+num_cvar
+Current number of control variables.
+.
+.
+.SH DESCRIPTION
+.ft R
+MPI_T_cvar_get_num can be used to query the current number of control variables. The number
+of control variables may increase throughout the execution of the process but will never
+decrease.
+
+.SH ERRORS
+.ft R
+MPI_T_cvar_get_num() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized

ompi/mpi/man/man3/MPI_T_cvar_handle_alloc.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_cvar_handle_alloc 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_cvar_handle_alloc\fP, \fBMPI_T_cvar_handle_free\fP \- Allocate/free contol variable handles
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_cvar_handle_alloc(int \fIcvar_index\fP, void *\fIobj_handle\fP,
+                            MPI_T_cvar_handle *\fIhandle\fP, int *\fIcount\fP)
+
+int MPI_T_cvar_handle_free(MPI_T_cvar_handle *\fIhandle\fP)
+
+.SH DESCRIPTION
+.ft R
+MPI_T_cvar_handle_alloc binds the control variable specified in \fIcvar_index\fP to the MPI
+object specified in \fIobj_handle\fP. If MPI_T_cvar_get_info returns MPI_T_BIND_NO_OBJECT
+as the binding of the variable the \fIobj_handle\fP argument is ignored. The number of
+values represented by this control variable is returned in the \fIcount\fP parameter. If the
+control variable represents a string then \fIcount\fP will be the maximum length of the
+string.
+
+MPI_T_cvar_handle_free frees a handle allocated by MPI_T_cvar_handle_alloc and sets the
+\fIhandle\fP argument to MPI_T_CVAR_HANDLE_NULL.
+
+
+.SH NOTES
+.ft R
+Open MPI does not currently support binding MPI objects to control variables so the
+\fIobj_handle\fP argument is always ignored.
+
+
+.SH ERRORS
+.ft R
+MPI_T_cvar_handle_alloc() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The control variable index is invalid
+.TP 1i
+[MPI_T_ERR_OUT_OF_HANDLES]
+No more handles available
+.TP 1i
+MPI_T_cvar_handle_free() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid
+
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_cvar_get_info
+

ompi/mpi/man/man3/MPI_T_cvar_handle_free.3in

+.so man3/MPI_T_cvar_handle_alloc.3

ompi/mpi/man/man3/MPI_T_cvar_read.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_cvar_read 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_cvar_read\fP \- Read the value of a control variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_cvar_read(MPI_T_cvar_handle \fIhandle\fP, const void *\fIbuf\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+handle
+Handle of the control variable to be read.
+.TP 1i
+buf
+Initial address of storage location for variable value.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_cvar_read reads the value of the control variable identified by the handle
+specified in \fIhandle\fP and stores the value in the buffer pointed to by \fIbuf\fP.
+The caller must ensure that the buffer pointed to by \fIbuf\fP is large enough to
+hold the entire value of the control variable.
+
+.SH ERRORS
+.ft R
+MPI_T_cvar_read() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_cvar_handle_alloc
+MPI_T_cvar_get_info

ompi/mpi/man/man3/MPI_T_cvar_write.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_cvar_write 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_cvar_write\fP \- Write the value of a bound control variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_cvar_write(MPI_T_cvar_handle \fIhandle\fP, const void *\fIbuf\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+handle
+Handle of the control variable to be written.
+.TP 1i
+buf
+Initial address of storage location for variable value.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_cvar_write sets the value the control variable identified by the handle
+specified in \fIhandle\fP from the buffer provided in \fIbuf\fP. The caller must
+ensure that the buffer specified in \fIbuf\fP is large enough to hold the
+entire value of the control variable. If the variable has global scope, any
+write call must be issued on all connected MPI processes. For more
+information see MPI-3 \[char167] 14.3.6.
+
+.SH ERRORS
+.ft R
+MPI_T_cvar_write() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid
+.TP 1i
+[MPI_T_ERR_CVAR_SET_NOT_NOW]
+Variable cannot be set at this moment
+.TP 1i
+[MPI_T_ERR_CVAR_SET_NEVER]
+Variable cannot be set until end of execution
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_cvar_handle_alloc
+MPI_T_cvar_get_info

ompi/mpi/man/man3/MPI_T_enum_get_info.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_enum_get_info 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_enum_get_info\fP \- Query information about an enumerator
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_enum_get_info(MPI_T_enum \fIenumtype\fP, int *\fInum\fP, char *\fIname\fP, int *\fIname_len\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+enumtype
+Enumerator to be queried.
+
+.SH INPUT/OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name_len
+Length of the string and/or buffer for name.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP li
+num
+number of discrete values represented by this enumeration.
+.TP 1i
+name
+Buffer to return the string containing the name of the
+category.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_enum_get_info can be used to query information about an enumerator. The function returns the
+number of discrete values represented by this enumerator in the \fInum\fP parameter.
+
+.SH NOTES
+.ft R
+This MPI tool interface function returns the name of the enumeration as a string. This function
+takes two argument for the string: \fIname\fP which specifies a buffer where the name of the
+should be stored, and \fIname_len\fP which must initially specify the size of the buffer pointed
+to by \fIname\fP. This function will copy at most \fIname_len\fP - 1 characters of the name
+and sets \fIname_len\fP to the number of characters returned + 1. If \fIname_len\fP is NULL
+or the value specified in \fIname_len\fP is 0 the \fIname\fP buffer is ignored and the name of
+the enumeration is not returned.
+
+.SH ERRORS
+.ft R
+MPI_T_enum_get_info() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The enumeration is invalid or has been deleted

ompi/mpi/man/man3/MPI_T_enum_get_item.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_enum_get_item 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_enum_get_item\fP \- Query information about an enumerator
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_enum_get_item(MPI_T_enum \fIenumtype\fP, int \fIindex\fP, int *\fIvalue\fP, char *\fIname\fP,
+                        int *\fIname_len\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+enumtype
+Enumeration to be queried.
+.TP 1i
+index
+Number of the value to be queried in this enumeration.
+
+.SH INPUT/OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name_len
+Length of the string and/or buffer for name.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP li
+value
+Variable value.
+.TP 1i
+name
+Buffer to return the string containing the name of the
+category.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_enum_get_item can be used to query information about an item in an enumerator. This function
+returns the enumeration value in the \fIvalue\fP parameter.
+
+.SH NOTES
+.ft R
+This MPI tool interface function returns the name of the item as a string. This function takes two
+arguments for the string: 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 buffer and sets 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 string buffer is ignored and the
+string is not returned. For more information see MPI-3 \[char167] 14.3.3.
+
+.SH ERRORS
+.ft R
+MPI_T_enum_get_item() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The enumeration is invalid or has been deleted

ompi/mpi/man/man3/MPI_T_finalize.3in

+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2010 Cisco Systems, Inc.  All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_T_finalize 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.SH NAME
+\fBMPI_T_finalize \fP \- Finalize the MPI tool information interface
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_finalize(void)
+
+.SH DESCRIPTION
+.ft R
+MPI_T_finalize() finalizes the MPI tool information interface and must be called the same
+number of times as MPI_T_init_thread() by the end of execution. Calls to MPI tool functions
+are allowed at any point in execution as long as MPI_T_init_thread() has been called at least
+once and the number of calls to MPI_T_init_thread() is greater than the number of calls to
+MPI_T_finalize(). If at any point in execution the number of calls to MPI_T_finalize() equals
+the number of calls to MPI_T_init_thread() the MPI tool interface will no longer be available
+until another call to MPI_T_init_thread().
+
+.SH NOTES
+.ft R
+Before the end of execution the number of calls to MPI_T_init_thread() and MPI_T_finalize must
+be the same.
+
+.SH ERRORS
+.ft R
+MPI_T_finalize() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+
+.SH SEE ALSO
+.ft T
+.nf
+MPI_T_init_thread
+

ompi/mpi/man/man3/MPI_T_init_thread.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_init_thread 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_init_thread\fP \- Initializes the MPI Tool imformation interface
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_init_thread(int \fIrequired\fP, int *\fIprovided\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+required
+Desired level of thread support (integer).
+.
+.
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+provided
+Available level of thread support (integer).
+.
+.
+.SH DESCRIPTION
+.ft R
+MPI_T_init_thread() initializes the MPI tool information interface. Calls to MPI tool functions
+are allowed at any point in execution (including before MPI_Init() and after MPI_Finalize()) as
+long as MPI_T_init_thread() has been called at least once and the number of calls to
+MPI_T_init_thread() is greater than the number of calls to MPI_T_finalize(). If at any point in
+execution the number of calls to MPI_T_finalize() equals the number of calls to
+MPI_T_init_thread() the MPI tool interface will no longer be available until another call to
+MPI_T_init_thread().
+
+.sp
+MPI_T_init_thread, like MPI_Init_thread, has a provision to request a
+certain level of thread support in \fIrequired\fP:
+.TP 2.4i
+MPI_THREAD_SINGLE
+Only one thread will execute.
+.TP 2.4i
+MPI_THREAD_FUNNELED
+If the process is multithreaded, only the thread that called
+MPI_Init_thread will make MPI calls.
+.TP 2.4i
+MPI_THREAD_SERIALIZED
+If the process is multithreaded, only one thread will make MPI library
+calls at one time.
+.TP 2.4i
+MPI_THREAD_MULTIPLE
+If the process is multithreaded, multiple threads may call MPI at once
+with no restrictions.
+.
+.PP
+The level of thread support available to the program is set in
+\fIprovided\fP. In Open MPI, the value is dependent on how the library was
+configured and built. Note that there is no guarantee that
+\fIprovided\fP will be greater than or equal to \fIrequired\fP.
+.
+.SH NOTES
+.ft R
+It is the caller's responsibility to check the value of \fIprovided\fP,
+as it may be less than what was requested in \fIrequired\fP.
+
+.SH ERRORS
+.ft R
+MPI_T_init_thread() will fail if:
+.TP 1i
+[MPI_T_ERR_MEMORY]
+Out of memory
+.TP 1i
+[MPI_T_ERR_CANNOT_INIT]
+Interface not in the state to be initialized
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Init_thread
+MPI_T_finalize
+

ompi/mpi/man/man3/MPI_T_pvar_get_info.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_get_info 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_get_info\fP \- Query information from a performance variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_get_info(int \fIpvar_index\fP, char *\fIname\fP, int *\fIname_len\fP,
+                        int *\fIverbosity\fP, int *\fIvar_class\fP, MPI_Datatype *\fIdatatype\fP, MPI_T_enum *\fIenumtype\fP,
+                        char *\fIdesc\fP, int *\fIdesc_len\fP, int *\fIbind\fP, int *\fIreadonly\fP, int *\fIcontinuous\fP,
+                        int *\fIatomic\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+pvar_index
+Index of the performance variable to be queried.
+
+.SH INPUT/OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name_len
+Length of the string and/or buffer for name.
+.TP 1i
+desc_len
+Length of the string and/or buffer for desc.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name
+Buffer to return the string containing the name of the
+performance variable.
+.TP 1i
+verbosity
+Verbosity level of this variable.
+.TP 1i
+var_class
+Class of performance variable.
+.TP 1i
+datatype
+MPI datatype of the information stored in the performance variable.
+.TP 1i
+enumtype
+Optional descriptor for enumeration information.
+.TP 1i
+desc
+Buffer to return the string containing the description of the performance variable.
+.TP 1i
+bind
+Type of MPI object to which this variable must be bound.
+.TP 1i
+readonly
+Flag indicating whether the variable can be written/reset.
+.TP 1i
+continuous
+Flag indicating whether the variable can be started and stopped or is continuously active.
+.TP 1i
+atomic
+Flag indicating whether the variable can be atomically read and reset.
+.
+.
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_get_info can be used to query information from a performance variable. The function returns
+the verbosity, class, datatype, enumeration type, and binding of the queried control variable in the arguments
+\fIverbosity\fP, \fIvar_class\fP, \fIdatatype\fP, \fIenumtype\fP, and \fIbind\fP respectively. Flags indicating
+whether the variable is read-only, continuous, or atomic are returns in \fIreadonly\fP, \fIcontinuous\fP, and
+\fIatomic\fP accordingly. See MPI-3 § 14.3.7 for more information. See the man page for MPI_T_cvar_get_info
+for information on variable verbosity.
+
+.SH VARIABLE CLASS
+.ft R
+Performance variables are categorized into classes which describe their initial value, valid types, and
+behavior. The class returned in the \fIvar_class\fP parameter may be one of the following:
+.TP 2
+MPI_T_PVAR_CLASS_STATE
+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. 
+.TP 2
+MPI_T_PVAR_CLASS_LEVEL
+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.
+.TP 2
+MPI_T_PVAR_CLASS_SIZE
+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.
+.TP 2
+MPI_T_PVAR_CLASS_PERCENTAGE
+Variable represents the current precentage 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.
+.TP 2
+MPI_T_PVAR_CLASS_HIGHWATERMARK
+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.
+.TP 2
+MPI_T_PVAR_CLASS_HIGHWATERMARK
+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.
+.TP 2
+MPI_T_PVAR_CLASS_COUNTER
+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.
+.TP 2
+MPI_T_PVAR_CLASS_COUNTER
+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.
+.TP 2
+MPI_T_PVAR_CLASS_TIMER
+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.
+.TP 2
+MPI_T_PVAR_CLASS_GENERIC
+Variable does not fit into any other class. Can by represented by an type supported by the MPI tool
+information interface (see DATATYPE). Starting value is variable specific.
+
+For more information see MPI-3 \[char 167] 14.3.7.
+
+.SH DATATYPE
+.ft R
+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 \[char167] 14.3.5.
+
+.SH BINDING
+.ft R
+Performance variables may be bound to an MPI object. The binding returned in the \fIbind\fP parameter may be
+one of the following:
+.TP 1i
+MPI_T_BIND_NO_OBJECT
+No object
+.TP 1i
+MPI_T_BIND_MPI_COMM
+MPI communicator
+.TP 1i
+MPI_T_BIND_MPI_DATATYPE
+MPI datatype
+.TP 1i
+MPI_T_BIND_MPI_ERRHANDLER
+MPI error handler
+.TP 1i
+MPI_T_BIND_MPI_FILE
+MPI file handle
+.TP 1i
+MPI_T_BIND_MPI_GROUP
+MPI group
+.TP 1i
+MPI_T_BIND_MPI_OP
+MPI reduction operator
+.TP 1i
+MPI_T_BIND_MPI_REQUEST
+MPI request
+.TP 1i
+MPI_T_BIND_MPI_WIN
+MPI window for one-sided communication
+.TP 1i
+MPI_T_BIND_MPI_MESSAGE
+MPI message object
+.TP 1i
+MPI_T_BIND_MPI_INFO
+MPI info object
+
+For more information see MPI-3 \[char167] 14.3.2.
+
+.SH NOTES
+.ft R
+This MPI tool interface function returns two strings. This function takes two argument for each string:
+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. For more information see MPI-3 \[char167] 14.3.3.
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_get_info() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The performance variable index is invalid
+.
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_cvar_get_info

ompi/mpi/man/man3/MPI_T_pvar_get_num.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_get_num 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_get_num\fP \- Query the number of performance variables
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_get_num(int *\fInum_pvar\fP)
+
+.fi
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+num_pvar
+Current number of performance variables.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_get_num can be used to query the current number of performance variables. The number
+of performance variables may increase throughout the exection of the process but will never
+decrease.
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_get_num() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized

ompi/mpi/man/man3/MPI_T_pvar_handle_alloc.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_handle_alloc 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_handle_alloc\fP, \fBMPI_T_pvar_handle_free\fP \- Allocate/free MPI performance variable handles
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_handle_alloc(int \fIpvar_index\fP, void *\fIobj_handle\fP,
+                            MPI_T_pvar_handle *\fIhandle\fP, int *\fIcount\fP)
+
+int MPI_T_pvar_handle_free(MPI_T_pvar_handle *\fIhandle\fP)
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_handle_alloc binds the performance variable specified in \fIpvar_index\fP to the MPI
+object specified in \fIobj_handle\fP. If MPI_T_pvar_get_info returns MPI_T_BIND_NO_OBJECT
+as the binding for the variable the \fIobj_handle\fP argument is ignored. The number of
+values represented by this performance variable is returned in the \fIcount\fP parameter.
+
+MPI_T_pvar_handle_free frees a handle allocated by MPI_T_pvar_handle_alloc and sets the
+\fIhandle\fP argument to MPI_T_PVAR_HANDLE_NULL.
+
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_handle_alloc() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_INDEX]
+The performance variable index is invalid
+.TP 1i
+[MPI_T_ERR_OUT_OF_HANDLES]
+No more handles available
+.TP 1i
+MPI_T_pvar_handle_free() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid
+
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_pvar_get_info
+

ompi/mpi/man/man3/MPI_T_pvar_handle_free.3in

+.so man3/MPI_T_pvar_handle_alloc.3

ompi/mpi/man/man3/MPI_T_pvar_read.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_read 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_read\fP \- Read the value of a performance variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_read(MPI_T_pvar_session \fIsession\fP, MPI_T_pvar_handle \fIhandle\fP, const void *\fIbuf\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+session
+Performance experiment session.
+.TP 1i
+handle
+Performance variable handle.
+.TP 1i
+buf
+Initial address of storage location for variable value.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_read queries the value of a performance variable identified by the handle
+specified in \fIhandle\fP in the session specified in \fIsession\fP. The result is
+stored in the buffer pointed to by \fIbuf\fP. The caller must ensure that the
+buffer pointed to by \fIbuf\fP is large enough to hold the entire value of the
+performance variable.
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_read() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid or not associated with the session
+.TP 1i
+[MPI_T_ERR_INVALID_SESSION]
+Session argument is not a valid session
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_pvar_handle_alloc
+MPI_T_pvar_get_info
+MPI_T_pvar_session_create

ompi/mpi/man/man3/MPI_T_pvar_readreset.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_readreset 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_readreset\fP \- Atomically read and reset the value of a performance variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_readreset(MPI_T_pvar_session \fIsession\fP, MPI_T_pvar_handle \fIhandle\fP, const void *\fIbuf\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+session
+Performance experiment session.
+.TP 1i
+handle
+Performance variable handle.
+.TP 1i
+buf
+Initial address of storage location for variable value.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_readreset atomically queries and resets the value of a performance variable
+bound to the handle specified by \fIhandle\fP in the session specified by \fIsession\fP.
+The result is stored in the buffer pointed to by \fIbuf\fP. This function can only be
+used with performance variables that are atomic and not readonly. The caller must ensure
+that the buffer pointed to by \fIbuf\fP is large enough to hold the entire value of the
+performance variable.
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_readreset() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid or not associated with the session
+.TP 1i
+[MPI_T_ERR_INVALID_SESSION]
+Session argument is not a valid session
+.TP 1i
+[MPI_T_ERR_PVAR_NO_ATOMIC]
+Variable cannot be read and written atomically
+.TP 1i
+[MPI_T_ERR_PVAR_NO_WRITE]
+Variable cannot be reset
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_pvar_handle_alloc
+MPI_T_pvar_get_info
+MPI_T_pvar_session_create
+MPI_T_pvar_read
+MPI_T_pvar_reset
+

ompi/mpi/man/man3/MPI_T_pvar_reset.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_reset 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_reset\fP \- Reset the value of a performance variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_reset(MPI_T_pvar_session \fIsession\fP, MPI_T_pvar_handle \fIhandle\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+session
+Performance experiment session.
+.TP 1i
+handle
+Performance variable handle or MPI_T_PVAR_ALL_HANDLES.
+.
+.
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_reset sets the performance variable specified by the handle in \fIhandle\fP
+to its initial value. The special value MPI_T_PVAR_ALL_HANDLES can be passed in \fIhandle\fP
+to reset all read-write handles in the session specified in \fIsession\fP.
+.
+.
+.SH ERRORS
+.ft R
+MPI_T_pvar_reset() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid
+.TP 1i
+[MPI_T_ERR_INVALID_SESSION]
+Session argument is not a valid session
+.TP 1i
+[MPI_T_ERR_PVAR_NO_WRITE]
+Variable cannot be reset
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_pvar_handle_alloc
+MPI_T_pvar_get_info
+MPI_T_pvar_session_create
+MPI_T_pvar_write

ompi/mpi/man/man3/MPI_T_pvar_session_create.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_session_create 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_session_create\fP, \fBMPI_T_pvar_session_free\fP \- Create/free performance variable session
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_session_create(MPI_T_pvar_session *\fIsession\fP)
+
+int MPI_T_pvar_session_free(MPI_T_pvar_session *\fIsession\fP)
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_session_create creates a session for accessing performance variables. The
+new session is returned in the \fIsession\fP parameter.
+
+MPI_T_pvar_session_free releases a session allocated by MPI_T_pvar_session_create and sets
+the \fIsession\fP parameter to MPI_T_PVAR_SESSION_NULL.
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_session_create() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_MEMORY]
+Out of memory
+.TP 1i
+[MPI_T_ERR_OUT_OF_SESSIONS]
+No more sessions available
+.TP 1i
+MPI_T_pvar_session_free() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_SESSION]
+The session parameter is not a valid session
+

ompi/mpi/man/man3/MPI_T_pvar_session_free.3in

+.so man3/MPI_T_pvar_session_create.3

ompi/mpi/man/man3/MPI_T_pvar_start.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_start 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_start\fP, \fBMPI_T_pvar_stop\fP \- Start/stop a performance variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_start(MPI_T_pvar_session \fIsession\fP, MPI_T_pvar_handle \fIhandle\fP)
+
+int MPI_T_pvar_stop(MPI_T_pvar_session \fIsession\fP, MPI_T_pvar_handle \fIhandle\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+session
+Performance experiment session.
+.TP 1i
+handle
+Performance variable handle.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_start starts the performance variable with the handle specified in \fIhandle\fP.
+The special value MPI_T_PVAR_ALL_HANDLES can be passed in \fIhandle\fP to start all
+non-continuous handles in the session specified in \fIsession\fP.
+
+MPI_T_pvar_stop stops the performance variable with the handle specified in \fIhandle\fP.
+The special value MPI_T_PVAR_ALL_HANDLES can be passed in \fIhandle\fP to stop all
+non-continuous handles in the session specified in \fIsession\fP.
+
+Continuous performance variables can neither be started nor stopped. 
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_start() and MPI_T_pvar_stop() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_SESSION]
+Session parameter is not a valid session
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+Invalid handle or handle not associated with the session
+.TP 1i
+[MPI_T_ERR_PVAR_NO_STARTSTOP]
+The variable cannot be started or stopped
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_pvar_get_info

ompi/mpi/man/man3/MPI_T_pvar_stop.3in

+.so man3/MPI_T_pvar_start.3

ompi/mpi/man/man3/MPI_T_pvar_write.3in

+. -*- nroff -*-
+.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
+.\" Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_T_pvar_write 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.
+.SH NAME
+\fBMPI_T_pvar_write\fP \- Write the value of a control variable
+.
+.SH SYNTAX
+.ft R
+.
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_T_pvar_write(MPI_T_pvar_session \fIsession\fP, MPI_T_pvar_handle \fIhandle\fP, const void *\fIbuf\fP)
+
+.fi
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+session
+Performance experiment session.
+.TP 1i
+handle
+Performance variable handle.
+.TP 1i
+buf
+Initial address of storage location for variable value.
+
+.SH DESCRIPTION
+.ft R
+MPI_T_pvar_write attempts to set the value of the performance variable identified by
+the handle specified in \fIhandle\fP in the session specified in \fPsession\fI. The
+value to be written is specified in \fIbuf\fP. The caller must ensure that the buffer
+specified in \fIbuf\fP is large enough to hold the entire value of the performance
+variable.
+
+.SH ERRORS
+.ft R
+MPI_T_pvar_write() will fail if:
+.TP 1i
+[MPI_T_ERR_NOT_INITIALIZED]
+The MPI Tools interface not initialized
+.TP 1i
+[MPI_T_ERR_INVALID_HANDLE]
+The handle is invalid or not associated with the session
+.TP 1i
+[MPI_T_ERR_INVALID_SESSION]
+Session argument is not a valid session
+.TP 1i
+[MPI_T_ERR_PVAR_NO_WRITE]
+Variable cannot be written
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_T_pvar_handle_alloc
+MPI_T_pvar_get_info
+MPI_T_pvar_session_create

ompi/mpi/man/man3/Makefile.extra

         mpi/man/man3/MPI_Status_set_cancelled.3 \
         mpi/man/man3/MPI_Status_set_elements.3 \
         mpi/man/man3/MPI_Status_set_elements_x.3 \
+        mpi/man/man3/MPI_T_category_changed.3 \
+        mpi/man/man3/MPI_T_category_get_categories.3 \
+        mpi/man/man3/MPI_T_category_get_cvars.3 \
+        mpi/man/man3/MPI_T_category_get_info.3 \
+        mpi/man/man3/MPI_T_category_get_num.3 \
+        mpi/man/man3/MPI_T_category_get_pvars.3 \
+        mpi/man/man3/MPI_T_cvar_get_info.3 \
+        mpi/man/man3/MPI_T_cvar_get_num.3 \
+        mpi/man/man3/MPI_T_cvar_handle_alloc.3 \
+        mpi/man/man3/MPI_T_cvar_handle_free.3 \
+        mpi/man/man3/MPI_T_cvar_read.3 \
+        mpi/man/man3/MPI_T_cvar_write.3 \
+        mpi/man/man3/MPI_T_enum_get_info.3 \
+        mpi/man/man3/MPI_T_enum_get_item.3 \
+        mpi/man/man3/MPI_T_finalize.3 \
+        mpi/man/man3/MPI_T_init_thread.3 \
+        mpi/man/man3/MPI_T_pvar_get_info.3 \
+        mpi/man/man3/MPI_T_pvar_get_num.3 \
+        mpi/man/man3/MPI_T_pvar_handle_alloc.3 \
+        mpi/man/man3/MPI_T_pvar_handle_free.3 \
+        mpi/man/man3/MPI_T_pvar_read.3 \
+        mpi/man/man3/MPI_T_pvar_readreset.3 \
+        mpi/man/man3/MPI_T_pvar_reset.3 \
+        mpi/man/man3/MPI_T_pvar_session_create.3 \
+        mpi/man/man3/MPI_T_pvar_session_free.3 \
+        mpi/man/man3/MPI_T_pvar_start.3 \
+        mpi/man/man3/MPI_T_pvar_stop.3 \
+        mpi/man/man3/MPI_T_pvar_write.3 \
         mpi/man/man3/MPI_Test.3 \
         mpi/man/man3/MPI_Testall.3 \
         mpi/man/man3/MPI_Testany.3 \

ompi/mpi/tool/Makefile.am

 libmpi_mpit_la_SOURCES = init_thread.c finalize.c cvar_get_num.c \
 		     cvar_get_info.c cvar_read.c cvar_write.c \
                      cvar_handle_alloc.c cvar_handle_free.c \
-                     catagory_get_num.c catagory_get_info.c \
-                     catagory_get_cvars.c catagory_get_pvars.c \
-                     catagory_get_catagories.c catagory_changed.c \
+                     category_get_num.c category_get_info.c \
+                     category_get_cvars.c category_get_pvars.c \
+                     category_get_categories.c category_changed.c \
                      pvar_get_info.c pvar_get_num.c pvar_handle_alloc.c \
                      pvar_handle_free.c pvar_read.c pvar_readreset.c \
                      pvar_reset.c pvar_session_create.c pvar_session_free.c \

ompi/mpi/tool/catagory_changed.c

-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights
- *                         reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include "ompi/mpi/tool/mpit-internal.h"
-
-#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
-#pragma weak MPI_T_category_changed = PMPI_T_category_changed
-#endif
-
-#if OMPI_PROFILING_DEFINES
-#include "ompi/mpi/tool/profile/defines.h"
-#endif
-
-static const char FUNC_NAME[] = "MPI_T_category_changed";
-
-int MPI_T_category_changed(int *stamp)
-{
-    if (!mpit_is_initialized ()) {
-        return MPI_T_ERR_NOT_INITIALIZED;
-    }
-
-    mpit_lock ();
-    *stamp = mca_base_var_group_get_stamp ();
-    mpit_unlock ();
-
-    return MPI_SUCCESS;
-}

ompi/mpi/tool/catagory_get_catagories.c

-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights
- *                         reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include "ompi/mpi/tool/mpit-internal.h"
-
-#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
-#pragma weak MPI_T_category_get_categories = PMPI_T_category_get_categories
-#endif
-
-#if OMPI_PROFILING_DEFINES
-#include "ompi/mpi/tool/profile/defines.h"
-#endif
-
-static const char FUNC_NAME[] = "MPI_T_category_get_categories";
-
-int MPI_T_category_get_categories(int cat_index, int len, int indices[])
-{
-    const mca_base_var_group_t *group;
-    const int *subgroups;
-    int rc = MPI_SUCCESS;
-    int i, size;
-
-    if (!mpit_is_initialized ()) {
-        return MPI_T_ERR_NOT_INITIALIZED;
-    }
-
-    mpit_lock ();
-
-    do {
-        rc = mca_base_var_group_get (cat_index, &group);
-        if (0 > rc) {
-            rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER;
-            break;
-        }
-
-        size = opal_value_array_get_size((opal_value_array_t *) &group->group_subgroups);
-        subgroups = OPAL_VALUE_ARRAY_GET_BASE(&group->group_subgroups, int);
-
-        for (i = 0 ; i < len && i < size ; ++i) {
-            indices[i] = subgroups[i];
-        }
-    } while (0);
-
-    mpit_unlock ();
-
-    return rc;
-}

ompi/mpi/tool/catagory_get_cvars.c

-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights
- *                         reserved.
- * $COPYRIGHT$
- *
- * Additional copyrights may follow
- *
- * $HEADER$
- */
-
-#include "ompi/mpi/tool/mpit-internal.h"
-
-#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
-#pragma weak MPI_T_category_get_cvars = PMPI_T_category_get_cvars
-#endif
-
-#if OMPI_PROFILING_DEFINES
-#include "ompi/mpi/tool/profile/defines.h"
-#endif
-
-static const char FUNC_NAME[] = "MPI_T_category_get_cvars";
-
-int MPI_T_category_get_cvars(int cat_index, int len, int indices[])
-{
-    const mca_base_var_group_t *group;
-    int rc = MPI_SUCCESS;
-    const int *vars;
-    int i, size;
-
-    if (!mpit_is_initialized ()) {
-        return MPI_T_ERR_NOT_INITIALIZED;
-    }
-
-    mpit_lock ();
-
-    do {
-        rc = mca_base_var_group_get (cat_index, &group);
-        if (0 > rc) {
-            rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER;
-            break;
-        }