T J | 4 Apr 21:23 2016
Picon

Floor divison on int returns float

I'm on NumPy 1.10.4 (mkl).


>>> np.uint(3) // 2   # 1.0
>>> 3 // 2   # 1

Is this behavior expected? It's certainly not desired from my perspective. If this is not a bug, could someone explain the rationale to me.

Thanks.




_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion
mpc | 4 Apr 19:35 2016
Picon

Multidimension array access in C via Python API

Hello, 

is there a C-API function for numpy that can implement Python's 
multidimensional indexing? 

For example, if I had a 2d array:

   PyArrayObject * M; 

and an index 

   int i; 

how do I extract the i-th row M[i,:] or i-th column M[:,i]?

Ideally it would be great if it returned another PyArrayObject* object (not
a newly allocated one, but whose data will point to the correct memory
locations of M).

I've searched everywhere in the API documentation, Google, and SO, but no
luck.

Any help is greatly appreciated.

Thank you.

-Matthew

--
View this message in context: http://numpy-discussion.10968.n7.nabble.com/Multidimension-array-access-in-C-via-Python-API-tp42710.html
Sent from the Numpy-discussion mailing list archive at Nabble.com.
Steve Mitchell | 2 Apr 21:59 2016

rational custom dtype example

I have noticed a few issues with the “rational” custom C dtype example.

 

1.        It doesn’t build on Windows.  I managed to tweak it to build.  Mainly, the MSVC9 compiler is C89.

2.       A few tests don’t pass on Windows, due to integer sizes.

3.       The copyswap and copyswapn routines don’t do in-place swapping if src == NULL, as specified in the docs.
http://docs.scipy.org/doc/numpy-1.10.0/reference/c-api.types-and-structures.html

 

  --Steve

 

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Ayush Kesarwani | 2 Apr 18:17 2016
Picon
Gravatar

Call for Proposals || PyCon India 2016

Hello Everyone

The Call for Proposals (CFP) for PyCon India 2016, New Delhi are live now. We have started accepting proposals.

Those interested to submit a proposal for a talk/proposal should submit the same at the given link [1].

More information about the event is present at the official website [2].

Kindly adhere to the guidelines mentioned for the submission of proposals.

Please help us spread the word. Kindly use #inpycon in your social updates.

Any queries regarding the CFP could be sent to contact <at> in.pycon.org .

Regards
Team InPycon

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Pierre Haessig | 1 Apr 14:15 2016
Gravatar

openopt.org down for months?

Hello,

I noticed some weeks (or months) ago that the openopt.org website is
down. Today, discussing optimization packages in Python with a colleague
, I noticed it is still down today.

Has somebody reading the numpy list more information about the state of
the OpenOpt project? Beyond the code which is still reachable on PyPI, I
remember the website was a useful resource on the topic with its
Wikipedia-style pages.

I've investigated related websites and noticed that :
* last PyPI update is August 2015 https://pypi.python.org/pypi/openopt
* last tweet is July 2015 https://twitter.com/dmitrey15 (with tweets
coming every other months or so until that).

best,
Pierre
Jaime Fernández del Río | 31 Mar 22:00 2016
Picon
Gravatar

Starting work on ufunc rewrite

I have started discussing with Nathaniel the implementation of the ufunc ABI break that he proposed in a draft NEP a few months ago:


His original proposal was to make the public portion of PyUFuncObject be:

    typedef struct {
        PyObject_HEAD
        int nin, nout, nargs;
    } PyUFuncObject;

Of course the idea is that internally we would use a much larger struct that we could change at will, as long as its first few entries matched those of PyUFuncObject. My problem with this, and I may very well be missing something, is that in PyUFunc_Type we need to set the tp_basicsize to the size of the extended struct, so we would end up having to expose its contents. This is somewhat similar to what now happens with PyArrayObject: anyone can #include "ndarraytypes.h", cast PyArrayObject* to PyArrayObjectFields*, and access the guts of the struct without using the supplied API inline functions. Not the end of the world, but if you want to make something private, you might as well make it truly private.

I think it would be to have something similar to what NpyIter does::

    typedef struct {
        PyObject_HEAD
        NpyUFunc *ufunc;
    } PyUFuncObject;

where NpyUFunc would, at this level, be an opaque type of which nothing would be known. We could have some of the NpyUFunc attributes cached on the PyUFuncObject struct for easier access, as is done in NewNpyArrayIterObject. This would also give us more liberty in making NpyUFunc be whatever we want it to be, including a variable-sized memory chunk that we could use and access at will. NpyIter is again a good example, where rather than storing pointers to strides and dimensions arrays, these are made part of the NpyIter memory chunk, effectively being equivalent to having variable sized arrays as part of the struct. And I think we will probably no longer trigger the Cython warnings about size changes either.

Any thoughts on this approach? Is there anything fundamentally wrong with what I'm proposing here?

Also, this is probably going to end up being a rewrite of a pretty large and complex codebase. I am not sure that working on this on my own and eventually sending a humongous PR is the best approach. Any thoughts on how best to handle turning this into a collaborative, incremental effort? Anyone who would like to join in the fun?

Jaime

--
(\__/)
( O.o)
( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes de dominación mundial.
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Allan Haldane | 30 Mar 21:37 2016
Picon

change to memmap subclass propagation

Hi all,

This is a warning for a planned change to np.memmap in
https://github.com/numpy/numpy/pull/7406.

The return values of ufuncs and fancy slices of a memmap will now be
plain ndarrays, since those return values don't point to mem-mapped memory.

There is a possibility that if you are subclassing memmap using multiple
inheritance something may break. We don't think anyone will be affected,
but please reply if it does affect you.

Allan
Travis Oliphant | 29 Mar 22:28 2016
Gravatar

Blog-post that explains what Blaze actually is and where Pluribus project now lives.

I have emailed this list in the past explaining what is driving my open source efforts now.  

Here is a blog-post that may help some of you understand at little bit of the history of Blaze, DyND Numba, and other related developments as they relate to scaling up and scaling out array-computing in Python.


This post and these projects do not have anything to do with the future of the NumPy and/or SciPy projects which are now in great hands guiding their community-driven development.   

The post is however, a discussion of additional projects that will hopefully benefit some of you as well, and for which your feedback and assistance is welcome.  

Best,

-Travis


--

Travis Oliphant, PhD
Co-founder and CEO


<at> teoliphant
512-222-5440
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Benjamin Root | 29 Mar 19:46 2016
Picon
Gravatar

Reflect array?

Is there a quick-n-easy way to reflect a NxM array that represents a quadrant into a 2Nx2M array? Essentially, I am trying to reduce the size of an expensive calculation by taking advantage of the fact that the first part of the calculation is just computing gaussian weights, which is radially symmetric.

It doesn't seem like np.tile() could support this (yet?). Maybe we could allow negative repetitions to mean "reflected"? But I was hoping there was some existing function or stride trick that could accomplish what I am trying.

x = np.linspace(-5, 5, 20)
y = np.linspace(-5, 5, 24)
z = np.hypot(x[None, :], y[:, None])
zz = np.hypot(x[None, :int(len(x)//2)], y[:int(len(y)//2), None])
zz = some_mirroring_trick(zz)
assert np.all(z == zz)

What can be my "some_mirroring_trick()"? I am hoping for something a little better than using hstack()/vstack().

Thanks,
Ben Root
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion
Matthew Brett | 28 Mar 23:33 2016
Picon
Gravatar

Using OpenBLAS for manylinux wheels

Hi,

Olivier Grisel and I are working on building and testing manylinux
wheels for numpy and scipy.

We first thought that we should use ATLAS BLAS, but Olivier found that
my build of these could be very slow [1].  I set up a testing grid [2]
which found test errors for numpy and scipy using ATLAS wheels.

On the other hand, the same testing grid finds no errors or failures
[3] using latest OpenBLAS (0.2.17) and running tests for:

numpy
scipy
scikit-learn
numexpr
pandas
statsmodels

This is on the travis-ci ubuntu VMs.

Please do test on your own machines with something like this script [4]:

source test_manylinux.sh

We have worried in the past about the reliability of OpenBLAS, but I
find these tests reassuring.

Are there any other tests of OpenBLAS that we should run to assure
ourselves that it is safe to use?

Matthew

[1] https://github.com/matthew-brett/manylinux-builds/issues/4#issue-143530908
[2] https://travis-ci.org/matthew-brett/manylinux-testing/builds/118780781
[3] I disabled a few pandas tests which were failing for reasons not
related to BLAS.  Some of the statsmodels test runs time out.
[4] https://gist.github.com/matthew-brett/2fd9d9a29e022c297634
Burlen Loring | 28 Mar 22:44 2016

numpy in python callback from threaded c++

Hi All,

in my c++ code I've added Python binding via swig. one scenario is to pass a python function to do some computational work. the Python program runs in serial in the main thread but work is handled by a thread pool, the callback is invoked from another thread on unique data. Before a thread invokes the Python callback it acquires Python's GIL. Also I PyEval_InitThreads during module initialization, and have swig'd with -threads flag. However, I'm experiencing frequent crashes when thread pool size is greater than 1, and valgrind is reporting errors from numpy even in case where thread pool size is 1.

Here's the essence of the error reported by valgrind:
==10316== Invalid read of size 4
==10316==    at 0x4ED7D73: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
....
==10316==  Address 0x20034020 is 3,856 bytes inside a block of size 4,097 free'd
==10316==    at 0x4C29E00: free (vg_replace_malloc.c:530)
==10316==    by 0x4F57B22: import_module_level (import.c:2278)
==10316==    by 0x4F57B22: PyImport_ImportModuleLevel (import.c:2292)
==10316==    by 0x4F36597: builtin___import__ (bltinmodule.c:49)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4E89C1A: call_function_tail (abstract.c:2578)
==10316==    by 0x4E89C1A: PyObject_CallFunction (abstract.c:2602)
==10316==    by 0x4F58735: PyImport_Import (import.c:2890)
==10316==    by 0x4F588B9: PyImport_ImportModule (import.c:2133)
==10316==    by 0x10D334C2: get_forwarding_ndarray_method (methods.c:57)
==10316==    by 0x10D372C0: array_mean (methods.c:1932)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
There are a few of these reported. I'll attach the full output. This is from the simplest scenario, where the thread pool has a size of 1. Although there are 2 threads, the program is serial as the main thread passes work tasks to the thread pool and waits for work to finish.

Here is the work function where above occurs:
def execute(port, data_in, req):
    sys.stderr.write('descriptive_stats::execute MPI %d\n'%(rank))

    mesh = as_teca_cartesian_mesh(data_in[0])

    table = teca_table.New()
    table.declare_columns(['step','time'], ['ul','d'])
    table << mesh.get_time_step() << mesh.get_time()

    for var_name in var_names:

        table.declare_columns(['min '+var_name, 'avg '+var_name, \
            'max '+var_name, 'std '+var_name, 'low_q '+var_name, \
            'med '+var_name, 'up_q '+var_name], ['d']*7)

        var = mesh.get_point_arrays().get(var_name).as_array()

        table << float(np.min(var)) << float(np.average(var)) \
            << float(np.max(var)) << float(np.std(var)) \
            << map(float, np.percentile(var, [25.,50.,75.]))

    return table

Again, I'm acquiring the GIL so this should be executed in serial. What am I doing wrong? Have I missed some key aspect of using numpy in this scenario? Any documentation on using numpy in a scenario like this? Any help is greatly appreciated!

Thanks
Burlen

==10316== Thread 2:
==10316== Invalid read of size 4
==10316==    at 0x4ED7D73: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
==10316==    by 0x112B01EE: iterator_loop (ufunc_object.c:1511)
==10316==    by 0x112B01EE: execute_legacy_ufunc_loop (ufunc_object.c:1660)
==10316==    by 0x112B01EE: PyUFunc_GenericFunction (ufunc_object.c:2627)
==10316==    by 0x112B0D95: ufunc_generic_call (ufunc_object.c:4253)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F3E009: do_call (ceval.c:4568)
==10316==    by 0x4F3E009: call_function (ceval.c:4373)
==10316==    by 0x4F3E009: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Address 0x20034020 is 3,856 bytes inside a block of size 4,097 free'd
==10316==    at 0x4C29E00: free (vg_replace_malloc.c:530)
==10316==    by 0x4F57B22: import_module_level (import.c:2278)
==10316==    by 0x4F57B22: PyImport_ImportModuleLevel (import.c:2292)
==10316==    by 0x4F36597: builtin___import__ (bltinmodule.c:49)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4E89C1A: call_function_tail (abstract.c:2578)
==10316==    by 0x4E89C1A: PyObject_CallFunction (abstract.c:2602)
==10316==    by 0x4F58735: PyImport_Import (import.c:2890)
==10316==    by 0x4F588B9: PyImport_ImportModule (import.c:2133)
==10316==    by 0x10D334C2: get_forwarding_ndarray_method (methods.c:57)
==10316==    by 0x10D372C0: array_mean (methods.c:1932)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Block was alloc'd at
==10316==    at 0x4C28D06: malloc (vg_replace_malloc.c:299)
==10316==    by 0x4F57800: import_module_level (import.c:2220)
==10316==    by 0x4F57800: PyImport_ImportModuleLevel (import.c:2292)
==10316==    by 0x4F36597: builtin___import__ (bltinmodule.c:49)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4E89C1A: call_function_tail (abstract.c:2578)
==10316==    by 0x4E89C1A: PyObject_CallFunction (abstract.c:2602)
==10316==    by 0x4F58735: PyImport_Import (import.c:2890)
==10316==    by 0x4F588B9: PyImport_ImportModule (import.c:2133)
==10316==    by 0x10D334C2: get_forwarding_ndarray_method (methods.c:57)
==10316==    by 0x10D372C0: array_mean (methods.c:1932)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316== 
==10316== Conditional jump or move depends on uninitialised value(s)
==10316==    at 0x4ED7D7C: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
==10316==    by 0x112B01EE: iterator_loop (ufunc_object.c:1511)
==10316==    by 0x112B01EE: execute_legacy_ufunc_loop (ufunc_object.c:1660)
==10316==    by 0x112B01EE: PyUFunc_GenericFunction (ufunc_object.c:2627)
==10316==    by 0x112B0D95: ufunc_generic_call (ufunc_object.c:4253)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F3E009: do_call (ceval.c:4568)
==10316==    by 0x4F3E009: call_function (ceval.c:4373)
==10316==    by 0x4F3E009: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Uninitialised value was created by a heap allocation
==10316==    at 0x4C29326: operator new(unsigned long) (vg_replace_malloc.c:334)
==10316==    by 0x1E913C79: __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) (new_allocator.h:104)
==10316==    by 0x1E900B2B: std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) (alloc_traits.h:360)
==10316==    by 0x1E8EDA41: std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) (stl_vector.h:170)
==10316==    by 0x1E90C4B7: void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<char const*&>(char const*&) (vector.tcc:412)
==10316==    by 0x1E8F7C46: void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<char const*&>(char const*&) (vector.tcc:101)
==10316==    by 0x1E8E250C: void teca_array_collection::declare<char const*&, double>(char const*&, double) (teca_array_collection.h:126)
==10316==    by 0x1E8C0729: void teca_table::declare_column<char const*&, double>(char const*&, double) (teca_table.h:153)
==10316==    by 0x1E7C92D6: teca_table_declare_column(teca_table*, char const*, char const*) (teca_py_alg.cxx:7651)
==10316==    by 0x1E7C9506: teca_table_declare_columns(teca_table*, _object*, _object*) (teca_py_alg.cxx:7704)
==10316==    by 0x1E86E072: _wrap_teca_table_declare_columns (teca_py_alg.cxx:59491)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F3E4F9: fast_function (ceval.c:4436)
==10316==    by 0x4F3E4F9: call_function (ceval.c:4371)
==10316==    by 0x4F3E4F9: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316== 
==10316== Use of uninitialised value of size 8
==10316==    at 0x4ED7D94: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
==10316==    by 0x112B01EE: iterator_loop (ufunc_object.c:1511)
==10316==    by 0x112B01EE: execute_legacy_ufunc_loop (ufunc_object.c:1660)
==10316==    by 0x112B01EE: PyUFunc_GenericFunction (ufunc_object.c:2627)
==10316==    by 0x112B0D95: ufunc_generic_call (ufunc_object.c:4253)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F3E009: do_call (ceval.c:4568)
==10316==    by 0x4F3E009: call_function (ceval.c:4373)
==10316==    by 0x4F3E009: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Uninitialised value was created by a heap allocation
==10316==    at 0x4C29326: operator new(unsigned long) (vg_replace_malloc.c:334)
==10316==    by 0x1E913C79: __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) (new_allocator.h:104)
==10316==    by 0x1E900B2B: std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) (alloc_traits.h:360)
==10316==    by 0x1E8EDA41: std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) (stl_vector.h:170)
==10316==    by 0x1E90C4B7: void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<char const*&>(char const*&) (vector.tcc:412)
==10316==    by 0x1E8F7C46: void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<char const*&>(char const*&) (vector.tcc:101)
==10316==    by 0x1E8E250C: void teca_array_collection::declare<char const*&, double>(char const*&, double) (teca_array_collection.h:126)
==10316==    by 0x1E8C0729: void teca_table::declare_column<char const*&, double>(char const*&, double) (teca_table.h:153)
==10316==    by 0x1E7C92D6: teca_table_declare_column(teca_table*, char const*, char const*) (teca_py_alg.cxx:7651)
==10316==    by 0x1E7C9506: teca_table_declare_columns(teca_table*, _object*, _object*) (teca_py_alg.cxx:7704)
==10316==    by 0x1E86E072: _wrap_teca_table_declare_columns (teca_py_alg.cxx:59491)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F3E4F9: fast_function (ceval.c:4436)
==10316==    by 0x4F3E4F9: call_function (ceval.c:4371)
==10316==    by 0x4F3E4F9: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: teca_py_algorithm::execute_callback::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() (teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: _ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_ (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() (functional:1520)
==10316==    by 0xFB0200D: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset const> >, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) (functional:1857)
==10316==    by 0xFAF8FBC: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2271)
==10316==    by 0xFAF8374: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const (functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() (functional:1520)
==10316==    by 0xFAF9CF9: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() (future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion <at> scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion

Gmane