Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [OMPI svn-full] svn:open-mpi r26119
From: Josh Hursey (jjhursey_at_[hidden])
Date: 2012-03-08 17:59:26


Thanks for the reminder. I forget about updating the news. Fixed in r26120.

-- Josh

On Thu, Mar 8, 2012 at 4:32 PM, Jeffrey Squyres <jsquyres_at_[hidden]> wrote:

> Can you add this to NEWS, please?
>
> Thanks.
>
>
>
> On Mar 8, 2012, at 5:02 PM, jjhursey_at_[hidden] wrote:
>
> > Author: jjhursey
> > Date: 2012-03-08 17:02:28 EST (Thu, 08 Mar 2012)
> > New Revision: 26119
> > URL: https://svn.open-mpi.org/trac/ompi/changeset/26119
> >
> > Log:
> > Create an MCA parameter (ess_base_stream_buffering) that allows the user
> to override the system default for buffering of stdout/stderr streams. See
> 'man setvbuf' for more information.
> >
> > Note: I am working on a system that buffered all output until the
> application fishished due to a default of 'fully buffered.' This makes
> debugging painful. This switch fixed the problem by allowing me to adjust
> the buffering.
> >
> >
> > Text files modified:
> > trunk/orte/mca/ess/base/base.h | 6 ++++++
> > trunk/orte/mca/ess/base/ess_base_open.c | 10 ++++++++++
> > trunk/orte/mca/ess/base/ess_base_std_app.c | 22
> +++++++++++++++++++++-
> > 3 files changed, 37 insertions(+), 1 deletions(-)
> >
> > Modified: trunk/orte/mca/ess/base/base.h
> >
> ==============================================================================
> > --- trunk/orte/mca/ess/base/base.h (original)
> > +++ trunk/orte/mca/ess/base/base.h 2012-03-08 17:02:28 EST (Thu, 08
> Mar 2012)
> > @@ -10,6 +10,7 @@
> > * Copyright (c) 2004-2005 The Regents of the University of California.
> > * All rights reserved.
> > * Copyright (c) 2011 Cisco Systems, Inc. All rights reserved.
> > + * Copyright (c) 2012 Oak Ridge National Labs. All rights
> reserved.
> > * $COPYRIGHT$
> > *
> > * Additional copyrights may follow
> > @@ -56,6 +57,11 @@
> > */
> > ORTE_DECLSPEC extern int orte_ess_base_output;
> >
> > +/*
> > + * stdout/stderr buffering control parameter
> > + */
> > +ORTE_DECLSPEC extern int orte_ess_base_std_buffering;
> > +
> > ORTE_DECLSPEC extern opal_list_t orte_ess_base_components_available;
> >
> > #if ORTE_ENABLE_EPOCH
> >
> > Modified: trunk/orte/mca/ess/base/ess_base_open.c
> >
> ==============================================================================
> > --- trunk/orte/mca/ess/base/ess_base_open.c (original)
> > +++ trunk/orte/mca/ess/base/ess_base_open.c 2012-03-08 17:02:28 EST
> (Thu, 08 Mar 2012)
> > @@ -10,6 +10,7 @@
> > * Copyright (c) 2004-2005 The Regents of the University of California.
> > * All rights reserved.
> > * Copyright (c) 2011 Cisco Systems, Inc. All rights reserved.
> > + * Copyright (c) 2012 Oak Ridge National Labs. All rights
> reserved.
> > * $COPYRIGHT$
> > *
> > * Additional copyrights may follow
> > @@ -51,10 +52,19 @@
> > NULL /* ft_event */
> > };
> > int orte_ess_base_output;
> > +int orte_ess_base_std_buffering = -1;
> >
> > int
> > orte_ess_base_open(void)
> > {
> > + mca_base_param_reg_int_name("ess_base",
> > + "stream_buffering",
> > + "Adjust buffering for stdout/stderr "
> > + "[-1 system default] [0 unbuffered] [1
> line buffered] [2 fully buffered] "
> > + "(Default: -1)",
> > + false, false,
> > + -1, &orte_ess_base_std_buffering);
> > +
> > orte_ess_base_output = opal_output_open(NULL);
> >
> > OBJ_CONSTRUCT(&orte_ess_base_components_available, opal_list_t);
> >
> > Modified: trunk/orte/mca/ess/base/ess_base_std_app.c
> >
> ==============================================================================
> > --- trunk/orte/mca/ess/base/ess_base_std_app.c (original)
> > +++ trunk/orte/mca/ess/base/ess_base_std_app.c 2012-03-08
> 17:02:28 EST (Thu, 08 Mar 2012)
> > @@ -9,7 +9,7 @@
> > * University of Stuttgart. All rights reserved.
> > * Copyright (c) 2004-2005 The Regents of the University of California.
> > * All rights reserved.
> > - * Copyright (c) 2010-2011 Oak Ridge National Labs. All rights
> reserved.
> > + * Copyright (c) 2010-2012 Oak Ridge National Labs. All rights
> reserved.
> > * $COPYRIGHT$
> > *
> > * Additional copyrights may follow
> > @@ -65,6 +65,26 @@
> > int ret;
> > char *error = NULL;
> >
> > + /*
> > + * stdout/stderr buffering
> > + * If the user requested to override the default setting then do
> > + * as they wish.
> > + */
> > + if( orte_ess_base_std_buffering > -1 ) {
> > + if( 0 == orte_ess_base_std_buffering ) {
> > + setvbuf(stdout, NULL, _IONBF, 0);
> > + setvbuf(stderr, NULL, _IONBF, 0);
> > + }
> > + else if( 1 == orte_ess_base_std_buffering ) {
> > + setvbuf(stdout, NULL, _IOLBF, 0);
> > + setvbuf(stderr, NULL, _IOLBF, 0);
> > + }
> > + else if( 2 == orte_ess_base_std_buffering ) {
> > + setvbuf(stdout, NULL, _IOFBF, 0);
> > + setvbuf(stderr, NULL, _IOFBF, 0);
> > + }
> > + }
> > +
> > /* open the errmgr */
> > if (ORTE_SUCCESS != (ret = orte_errmgr_base_open())) {
> > ORTE_ERROR_LOG(ret);
> > _______________________________________________
> > svn-full mailing list
> > svn-full_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/svn-full
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>

-- 
Joshua Hursey
Postdoctoral Research Associate
Oak Ridge National Laboratory
http://users.nccs.gov/~jjhursey