Coder Social home page Coder Social logo

valeevgroup / tiledarray Goto Github PK

View Code? Open in Web Editor NEW
247.0 247.0 51.0 223.18 MB

A massively-parallel, block-sparse tensor framework written in C++

License: GNU General Public License v3.0

CMake 0.19% C++ 99.66% Shell 0.03% C 0.02% Cuda 0.03% Python 0.02% Jupyter Notebook 0.06%

tiledarray's People

Contributors

ambmax00 avatar asadchev avatar awild82 avatar bimalgaudel avatar calewis avatar devreal avatar evaleev avatar jinmeiz avatar justusc avatar jwaldrop107 avatar keceli avatar kmp5vt avatar pchong90 avatar powellsr avatar ryanmrichard avatar samslattery avatar therault avatar topazus avatar victor-anisimov avatar wavefunction91 avatar xwang862 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tiledarray's Issues

delta function

In multireference theories, there are lots of instances where one has to do:

a("i,j,k,l") += delta("i,j") * b("k,l")

where delta is the Kronecker delta. This has to be implemented in some way (there are higher order analogues too - imagine calculating hole 4RDM from particle RDMs).

bug related to block expressions

It terminates with a following error message:

[shiozaki@zinc src]$ ./a.out 
MADNESS runtime initialized with 31 threads in the pool and affinity -1 -1 -1
TiledArray: exception at /usr/local/include/TiledArray/tensor/kernels.h(103): assertion failure
MADNESS: fatal error: caught an STL exception
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0

A complete program is attached below. If you change the line 57 to

c("c1, x1, c2, x0").block({0,0,0,0},{1,1,1,1}) += a("c1, c2, x1, x0").block({0,0,0,0},{1,1,1,1});

then it seems to run.

#include <tiledarray.h> // for TiledArray library

namespace TA = TiledArray;

// Construct a second-order tensor tile that is filled with v
TA::Array<double,4>::value_type
make_tile(TA::Array<double, 4>::range_type& range, const double v) {
  // Construct a tile
  TA::Array<double, 4>::value_type tile(range);
  std::fill(tile.begin(), tile.end(), v); 

  return tile;
}

// Fill array x with value v
void init_array(TA::Array<double, 4>& x, const double v) {
  // Add local tiles to a
  for(TA::Array<double, 4>::iterator it = x.begin(); it != x.end(); ++it) {
    // Construct a tile using a MADNESS task.
    madness::Future<TA::Array<double, 4>::value_type> tile =
        x.get_world().taskq.add(& make_tile, x.trange().make_tile_range(it.ordinal()), v); 

    // Insert the tile into the array
    *it = tile;
  }
}

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  std::vector<std::size_t> tile_boundaries1 {0,5,12,13,16};
  std::vector<std::size_t> tile_boundaries2 {12,13,16,23,25};

  // Construct a set of TiledRange1's
  TiledArray::TiledRange1 tile_b1(tile_boundaries1.begin(), tile_boundaries1.end());
  TiledArray::TiledRange1 tile_b2(tile_boundaries2.begin(), tile_boundaries2.end());
  std::vector<TiledArray::TiledRange1>
    ranges1{tile_b1, tile_b1, tile_b2, tile_b2};
  std::vector<TiledArray::TiledRange1>
    ranges2{tile_b1, tile_b2, tile_b1, tile_b2};

  // Construct the 2D TiledRange
  TA::TiledRange trange1(ranges1.begin(), ranges1.end());
  TA::TiledRange trange2(ranges2.begin(), ranges2.end());

  // Construct array objects.
  TA::Array<double, 4> a(world, trange1);
  TA::Array<double, 4> c(world, trange2);

  // Initialize a and b.
  init_array(a, 3.0);
  c.fill_local(0.0);

  // THIS PART IS MODIFIED FROM THE SAMPLE PROGRAM
  c("c2, x1, c1, x0").block({0,0,0,0},{1,1,1,1}) += a("c1, c2, x0, x1").block({0,0,0,0},{1,1,1,1});

  // Wait for all the computation to complete before exiting
  world.gop.fence();

  madness::finalize();
  return 0;
}

bug? (find(ordinal) does not wait)

Wrote to you guys an email, but reported here as I have multiple issues now. I thought that the following should work (based on comments etc in the code) - but please close if this is design. In that case I'd appreciate if you could explain why this is supposed to be this way (I thought I've understood the philosophy behind TA but who knows).

mpirun -n 10 ./a.out

will produce a tensor randomly filled by 2. Adding fence in the middle fix the issue. The error is found only when there are multiple MPI processes.

#include <tiledarray.h> // for TiledArray library
#include <complex>

namespace TA = TiledArray;
using namespace std;

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  vector<size_t> aa{0,2,10};

  // Construct a set of TiledRange1's
  TiledArray::TiledRange1 tileaa(aa.begin(), aa.end());

  vector<TiledArray::TiledRange1> ranges1{tileaa, tileaa, tileaa};
  TA::TiledRange trange1(ranges1.begin(), ranges1.end());

  // Construct array objects.
  TA::Array<complex<double>,3> S(world, trange1);
  S.fill_local(2.0);

  TA::Array<complex<double>,3> A(world, trange1);
  A.fill_local(0.0);
  for (auto it = A.begin(); it != A.end(); ++it) {
    auto range = A.trange().make_tile_range(it.ordinal());
    auto sa = S.trange().tiles().ordinal(S.trange().element_to_tile(range.lobound()));
    assert(sa == it.ordinal());
    A.get_world().taskq.add([](typename TA::Array<complex<double>,3>::value_type i,
                               typename TA::Array<complex<double>,3>::value_type j) { i.add_to(j); },
                            (*it).future(), S.find(sa));
  }

//world.gop.fence();

  TA::Array<complex<double>,3> B(world, trange1);
  B.fill_local(0.0);
  for (auto it = B.begin(); it != B.end(); ++it) {
    auto range = B.trange().make_tile_range(it.ordinal());
    auto sa = A.trange().tiles().ordinal(A.trange().element_to_tile(range.lobound()));
    assert(sa == it.ordinal());
    B.get_world().taskq.add([](typename TA::Array<complex<double>,3>::value_type i,
                               typename TA::Array<complex<double>,3>::value_type j) { i.add_to(j); },
                            (*it).future(), A.find(sa));
  }

  world.gop.fence();
  cout << B << endl;

  world.gop.fence();
  madness::finalize();
  return 0;
}

ta_dense compilation broken on gcc.

ta_dense is broken with gcc 4.8.3, 4.9.2, and 5.1.0. The break happens sometime after commit b15c49d because ta_dense works for that commit but not the latest commit for the file ta_dense.cpp, which is b9e2e76.

I will provide the errors messages from 5.1.0 since it seems to have the most information.

All of the errors look something like the error below. I think this has something to do with the return type deduction from tile.h:781, but I am not really sure where this error came from, the error messages are a bit verbose.

In file included from /hyades/home/valeev/calewis/software/upstream_tiledarray/src/tiledarray.h:30:0,
                 from /hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_dense.cpp:21:
/hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/tile.h: In instantiation of ‘class TiledArray::Tile<std::complex<double> >’:
/hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/tile.h:781:25:   required by substitution of ‘template<class Left, class Right, class Scalar, typename std::enable_if<TiledArray::detail::is_numeric<Scalar>::value>::type* <anonymous> > TiledArray::Tile<decltype (TiledArray::gemm(left.tensor(), right.tensor(), factor, gemm_config))> TiledArray::gemm(const TiledArray::Tile<T>&, const TiledArray::Tile<Right>&, Scalar, const TiledArray::math::GemmHelper&) [with Left = std::complex<double>; Right = <missing>; Scalar = <missing>; typename std::enable_if<TiledArray::detail::is_numeric<Scalar>::value>::type* <anonymous> = <missing>]’
/hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_dense.cpp:99:55:   required from here
/hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/tile.h:136:40: error: no matching function for call to ‘begin(TiledArray::Tile<std::complex<double> >::tensor_type&)’
     auto begin() -> decltype(std::begin(tensor()))
                                        ^
In file included from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/range_access.h:36:0,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/string:51,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/locale_classes.h:40,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/ios_base.h:41,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/ios:42,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/ostream:38,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/iostream:39,
                 from /hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_dense.cpp:20:
/state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/initializer_list:89:5: note: candidate: template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)
     begin(initializer_list<_Tp> __ils) noexcept
     ^
/state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/initializer_list:89:5: note:   template argument deduction/substitution failed:
In file included from /hyades/home/valeev/calewis/software/upstream_tiledarray/src/tiledarray.h:30:0,
                 from /hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_dense.cpp:21:
/hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/tile.h:136:40: note:   ‘std::complex<double>’ is not derived from ‘std::initializer_list<_Tp>’
     auto begin() -> decltype(std::begin(tensor()))
                                        ^
In file included from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/string:51:0,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/locale_classes.h:40,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/ios_base.h:41,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/ios:42,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/ostream:38,
                 from /state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/iostream:39,
                 from /hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_dense.cpp:20:
/state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/range_access.h:48:5: note: candidate: template<class _Container> decltype (__cont.begin()) std::begin(_Container&)
     begin(_Container& __cont) -> decltype(__cont.begin())
     ^
/state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/range_access.h:48:5: note:   template argument deduction/substitution failed:
/state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/range_access.h: In substitution of ‘template<class _Container> decltype (__cont.begin()) std::begin(_Container&) [with _Container = std::complex<double>]’:
/hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/tile.h:136:40:   required from ‘class TiledArray::Tile<std::complex<double> >’
/hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/tile.h:781:25:   required by substitution of ‘template<class Left, class Right, class Scalar, typename std::enable_if<TiledArray::detail::is_numeric<Scalar>::value>::type* <anonymous> > TiledArray::Tile<decltype (TiledArray::gemm(left.tensor(), right.tensor(), factor, gemm_config))> TiledArray::gemm(const TiledArray::Tile<T>&, const TiledArray::Tile<Right>&, Scalar, const TiledArray::math::GemmHelper&) [with Left = std::complex<double>; Right = <missing>; Scalar = <missing>; typename std::enable_if<TiledArray::detail::is_numeric<Scalar>::value>::type* <anonymous> = <missing>]’
/hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_dense.cpp:99:55:   required from here
/state/partition1/home/software/gcc/5.1.0/include/c++/5.1.0/bits/range_access.h:48:5: error: ‘struct std::complex<double>’ has no member named ‘begin’

Wait issue with sparse GEMM

I have encountered a waiting issue when using sparse gemm

Here is the code
screen shot 2014-12-09 at 7 18 17 am

Here is output
screen shot 2014-12-09 at 7 22 09 am

The error occurs at line numbered 10 in the screenshot.

After setting a breakpoint on madness::exception here is the back trace
screen shot 2014-12-09 at 7 23 48 am
screen shot 2014-12-09 at 7 24 17 am

I have recompiling to make sure madness does not have tbb give the following error
screen shot 2014-12-09 at 7 33 15 am
screen shot 2014-12-09 at 7 33 43 am

rerunning on a single thread gives the following backtrace
screen shot 2014-12-09 at 7 33 43 am
screen shot 2014-12-09 at 7 36 28 am

'madness/tensor/lapack_functions.h' not installed correctly by TiledArray?

cd /Users/ChongPeng/Library/Caches/CLion12/cmake/generated/5d51773a/5d51773a/Debug1/examples && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -std=c++11 -std=c++11 -stdlib=libc++ -g -I/Users/ChongPeng/Workspace/Development/install/tiledarray_release_clang/include -I/usr/local/include/eigen3 -I/usr/local/include -I/Users/ChongPeng/Workspace/Development/install/libint_clang/include -I/Users/ChongPeng/Workspace/Development/install/libint_clang/include/libint2 -I/Users/ChongPeng/Workspace/Development/source/BTAS -I/usr/local/Cellar/rapidjson/1.0.2/include -I/Users/ChongPeng/Library/Caches/CLion12/cmake/generated/5d51773a/5d51773a/__default__1/include/cereal/src/cereal/include -I/Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/PARENT_SCOPE    -o CMakeFiles/ccsd.dir/ccsd.cpp.o -c /Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/ccsd.cpp
In file included from /Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/ccsd.cpp:17:
In file included from /Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/../utility/array_storage.h:7:
In file included from /Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/../utility/../tensor/tile_algebra.h:9:
/Users/ChongPeng/Workspace/Development/install/tiledarray_release_clang/include/madness/tensor/clapack.h:43:10: fatal error: 'madness/tensor/lapack_functions.h' file not found
#include <madness/tensor/lapack_functions.h>

in my TiledArray install directory

ls include/madness/*
include/madness/config.h         include/madness/fortran_ctypes.h
include/madness/constants.h      include/madness/madness_config.h

include/madness/tensor:
cblas.h   clapack.h

include/madness/world:
MADworld.h               future.h                 stubmpi.h                worldgop.h
archive.h                group.h                  taskfn.h                 worldhash.h
array_addons.h           info.h                   text_fstream_archive.h   worldhashmap.h
atomicint.h              madness_exception.h      thread.h                 worldmem.h
bgq_atomics.h            mem_func_wrapper.h       timers.h                 worldmpi.h
binary_fstream_archive.h mpi_archive.h            type_traits.h            worldmutex.h
binsorter.h              nodefaults.h             uniqueid.h               worldpapi.h
buffer_archive.h         parallel_archive.h       vector.h                 worldprofile.h
deferred_cleanup.h       posixmem.h               vector_archive.h         worldptr.h
dependency_interface.h   print.h                  world.h                  worldref.h
dist_cache.h             print_seq.h              world_object.h           worldrmi.h
distributed_id.h         range.h                  world_task_queue.h       worldtypes.h
dqueue.h                 safempi.h                worldam.h
function_traits.h        stack.h                  worlddc.h

no lapack_functions.h is found under include/madness/tensor

configure help is confusing

It says

  --integer8              Assume integer*8 in Fortran (INTEGER4=FALSE), otherwise
                          integer*4 is the default Fortran integer size.

but the default is Integer 8 (in CMakeLists.txt)

set(INTEGER4 "FALSE" CACHE BOOL "Set the default Fortran integer type to integer*4")

Also I want an option "--integer4" because everything in my code is integer 4.

calling swap on an empty TiledArray::Range leaves both ranges empty.

Assume that LR_D is an initialized TiledArray::Array

This code
auto empty_range = TiledArray::Range::Range();
auto first_range = LR_D.begin()->get().range();
std::cout << "empty range before swap = " << empty_range << std::endl;
std::cout << "first range before swap = " << first_range << std::endl;
empty_range.swap(first_range);
std::cout << "empty range after swap = " << empty_range << std::endl;
std::cout << "first range after swap = " << first_range << std::endl;

produces the following output:
empty range before swap = [ [], [] )
first range before swap = [ [0,0], [7,7] )
empty range after swap = [ [], [] )
first range after swap = [ [], [] )

I have checked, the type of empty_range is a range, so I don't think that auto is doing anything funny here.

bug

The complete code below. Without "* 2" in the line that fails, the code appears to run through..

#include <tiledarray.h> // for TiledArray library

namespace TA = TiledArray;

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  std::vector<std::size_t> virt {0,2,10,18};
  std::vector<std::size_t> occ  {0,3,5};
  std::vector<std::size_t> pvirt {0,8,16};
  std::vector<std::size_t> closed {0,3};
  std::vector<std::size_t> active {0,2};

  // Construct a set of TiledRange1's
  TiledArray::TiledRange1 tilevirt(virt.begin(), virt.end());
  TiledArray::TiledRange1 tilepvirt(pvirt.begin(), pvirt.end());
  TiledArray::TiledRange1 tileocc(occ.begin(), occ.end());
  TiledArray::TiledRange1 tileclosed(closed.begin(), closed.end());
  TiledArray::TiledRange1 tileactive(active.begin(), active.end());

  std::vector<TiledArray::TiledRange1> ranges2{tilevirt, tileocc, tilevirt, tileocc};
  std::vector<TiledArray::TiledRange1> ranges3{tileactive, tileclosed, tilepvirt, tileclosed};


  // Construct the 2D TiledRange
  TA::TiledRange trange2(ranges2.begin(), ranges2.end());
  TA::TiledRange trange3(ranges3.begin(), ranges3.end());

  // Construct array objects.
  TA::Array<double, 4> b(world, trange2);
  TA::Array<double, 4> c(world, trange3);

  // Initialize a and b.
  b.fill_local(3.0);
  c.fill_local(0.0);

// fails
  c("x1, c3, a2, c1") += b("a2, c1, x1, c3").block({1,0,0,0},{3,1,1,1}) * 2;

  // Wait for all the computation to complete before exiting
  world.gop.fence();

  madness::finalize();
  return 0;
}

complicated expression fails

MADNESS runtime initialized with 31 threads in the pool and affinity -1 -1 -1
terminate called after throwing an instance of 'TiledArray::Exception'
  what():  TiledArray: exception at /usr/local/include/TiledArray/expressions/variable_list.h(94): assertion failure
Aborted

this is what I get from the following complete program. At least it should be written in Wiki that one cannot multiply more than two tensors (if that is the case). Otherwise this is a bug.

#include <tiledarray.h> // for TiledArray library

namespace TA = TiledArray;

// Construct a second-order tensor tile that is filled with v
TA::Array<double,2>::value_type
make_tile(TA::Array<double, 2>::range_type& range, const double v) {
  // Construct a tile
  TA::Array<double, 2>::value_type tile(range);
  std::fill(tile.begin(), tile.end(), v); 

  return tile;
}

// Fill array x with value v
void init_array(TA::Array<double, 2>& x, const double v) {
  // Add local tiles to a
  for(TA::Array<double, 4>::iterator it = x.begin(); it != x.end(); ++it) {
    // Construct a tile using a MADNESS task.
    madness::Future<TA::Array<double, 2>::value_type> tile =
        x.get_world().taskq.add(& make_tile, x.trange().make_tile_range(it.ordinal()), v); 

    // Insert the tile into the array
    *it = tile;
  }
}

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  std::vector<std::size_t> tile_boundaries;
  for(std::size_t i = 0; i <= 16; i += 4)
    tile_boundaries.push_back(i);

  // Construct a set of TiledRange1's
  std::vector<TiledArray::TiledRange1>
    ranges(4, TiledArray::TiledRange1(tile_boundaries.begin(), tile_boundaries.end()));
  std::vector<TiledArray::TiledRange1>
    ranges3(3, TiledArray::TiledRange1(tile_boundaries.begin(), tile_boundaries.end()));


  // Construct the 2D TiledRange
  TA::TiledRange trange(ranges.begin(), ranges.end());
  TA::TiledRange trange3(ranges3.begin(), ranges3.end());

  // Construct array objects.
  TA::Array<double, 4> a(world, trange);
  TA::Array<double, 4> b(world, trange);
  TA::Array<double, 3> c(world, trange3);
  TA::Array<double, 3> d(world, trange3);

  // Initialize a and b.
  a.fill_local(0.0);
  b.fill_local(0.0);
  c.fill_local(0.0);
  d.fill_local(0.0);

  // Compute the contraction c(m,n) = sum_k a(m,k) * b(k,n)
  a("x6,a3,x5,a1") = b("x0,a1,x2,a3") * c("o4,x0,x2") * d("a1,a3,o4") * c("o4,x5,x6");

  // Wait for all the computation to complete before exiting
  world.gop.fence();

  madness::finalize();
  return 0;
}

MPQC complain about TiledArray for ambiguous call

In file included from /Users/ChongPeng/Workspace/Development/source/mpqc/src/lib/chemistry/qc/mbptr12/sr_r12intermediates_util.cc:36:
In file included from /Users/ChongPeng/Workspace/Development/source/mpqc/src/lib/chemistry/qc/mbptr12/sr_r12intermediates.h:36:
In file included from /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/tiledarray.h:24:
In file included from /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/array.h:25:
In file included from /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/tensor.h:23:
In file included from /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/range.h:24:
In file included from /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/size_array.h:23:
In file included from /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/math/outer.h:29:
/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/math/vector_op.h:409:9: error: call to 'for_each_block_ptr' is ambiguous
for_each_block_ptr(op, result + i, Block(args + i)...);
/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/math/vector_op.h:497:7: note: in instantiation of function template specialization
'TiledArray::math::vector_ptr_op<(lambda at /Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/math/vector_op.h:496:17) &,
TiledArray::Tensor<double, Eigen::aligned_allocator >>' requested here
vector_ptr_op(op, n, arg);

Block expression - move assignment broken

See line 227 of blk_tsr_expr.h.

// works
//c("m,n").block({1,1},{2,2}) = a("m,k").block({0,1},{1,2}) * b("k,n").block({1,0}, {2,1});
// fails
  c("m,n").block({1,1},{2,2}) = a("n,m").block({0,1},{1,2});
// works
//c("m,n").block({1,1},{2,2}) += a("n,m").block({0,1},{1,2});
// works
//auto tmp = a("n,m").block({0,1},{1,2});
//c("m,n").block({1,1},{2,2}) = tmp;

complicated expression with Lazy tensor fails.

The same example with lazy tensor fails. If we break up the expression (see if blocks), it works. The error occurs only when >1 MPI processes are used. The error message is:

[shiozaki@zinc src]$ mpirun -n 2 ./a.out 
MADNESS runtime initialized with 31 threads in the pool and affinity -1 -1 -1
!! ERROR TiledArray: The Array has not been initialized, likely reason: it was default constructed and used.

Here is the complete program:

#include <tiledarray.h> // for TiledArray library
class Gen {
  public:
    Gen() { }
    template <typename Index> double operator()(const Index& i) { return 1.0; }
};

template<typename DataType, int N, typename Gen>
class LazyTensor {
  private:
    TiledArray::Array<DataType, N, LazyTensor>* owner_;
    std::array<size_t, N> index_;
    Gen* gen_;

  public:
    using value_type = DataType;
    using eval_type = TiledArray::Tensor<DataType>;
    using range_type = typename eval_type::range_type;

    template <typename Archive>
    void serialize(Archive& ar) {
//    assert(false);
    }

  public:
    LazyTensor(TiledArray::Array<DataType, N, LazyTensor>* o, const std::array<size_t, N>& i, Gen* gen)
     : owner_(o), index_(i), gen_(gen) {
    }

    LazyTensor(const LazyTensor& other) : owner_(other.owner_), index_(other.index_), gen_(other.gen_) { }
    LazyTensor() { }

    LazyTensor& operator=(const LazyTensor& other) {
      owner_ = other.owner_;
      index_ = other.index_;
      gen_   = other.gen_;
      return *this;
    }

    operator eval_type () const {
      eval_type tile(owner_->trange().make_tile_range(index_));
      auto* ptr = tile.data();
      for (auto& i : tile.range())
        *ptr++ = (*gen_)(i);
      return tile;
    }
};


namespace TA = TiledArray;

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  std::vector<std::size_t> tile_boundaries;
  for(std::size_t i = 0; i <= 16; i += 4)
    tile_boundaries.push_back(i);

  // Construct a set of TiledRange1's
  std::vector<TiledArray::TiledRange1>
    ranges(4, TiledArray::TiledRange1(tile_boundaries.begin(), tile_boundaries.end()));
  std::vector<TiledArray::TiledRange1>
    ranges3(3, TiledArray::TiledRange1(tile_boundaries.begin(), tile_boundaries.end()));


  // Construct the 2D TiledRange
  TA::TiledRange trange(ranges.begin(), ranges.end());
  TA::TiledRange trange3(ranges3.begin(), ranges3.end());

  // Construct array objects.
  TA::Array<double, 4> a(world, trange);
  TA::Array<double, 4> b(world, trange);
  TA::Array<double, 3> c(world, trange3);

  using Lazy = LazyTensor<double,3,Gen>;
  TA::Array<double, 3, Lazy> d(world, trange3);
  Gen gen;
  for (auto& t : d.trange().tiles())
    if (d.is_local(t)) {
      std::array<size_t, 3> index;
      std::copy(t.begin(), t.end(), index.begin());
      madness::Future<typename TA::Array<double, 3, Lazy>::value_type> tile(Lazy(&d, index, &gen));
      d.set(t, tile);
    }


  // Initialize a and b.
  a.fill_local(0.0);
  b.fill_local(0.0);
  c.fill_local(0.0);

#if 1
  // THIS FAILS
  a("x6,a3,x5,a1") = b("x0,a1,x2,a3") * c("o4,x0,x2") * d("a1,a3,o4") * c("o4,x5,x6");
#else
  // THIS WORKS
  TA::Array<double, 3> tmp1(world, trange3);
  TA::Array<double, 3> tmp2(world, trange3);
  tmp1("a1,a3,o4") = b("x0,a1,x2,a3") * c("o4,x0,x2");
  tmp2("a1,a3,o4") = tmp1("a1,a3,o4") * d("a1,a3,o4");
  a("x6,a3,x5,a1") = tmp2("a1,a3,o4") * c("o4,x5,x6");
#endif

  // Wait for all the computation to complete before exiting
  world.gop.fence();

  madness::finalize();
  return 0;
}

enhancement: zero-dimentional array

I know that you guys are not interested in implementing this at the moment, but I do think that this is necessary at some point; so I leave this note here on the issues.

Note that currently I, as a poor user, implement things like this just for internal consistency.
...One of the ugliest code I have ever written! - however it does work.

template<typename DataType>
class TATensor<DataType,0> : public TiledArray::Array<DataType,1> {
  protected:
    DataType data_;
  public:
    using TiledArray::Array<DataType,1>::end;
    using TiledArray::Array<DataType,1>::trange;
    auto begin() -> decltype(TiledArray::Array<DataType,1>::end()) { end(); }
    auto begin() const -> decltype(TiledArray::Array<DataType,1>::end()) { end(); }
    DataType& operator()(const std::string& vars) { assert(vars.empty()); return data_; } 
    const DataType& operator()(const std::string& vars) const { assert(vars.empty()); return data_; } 
...

type_traits: scalar_type for complex<double> breaks

with gcc 5.2 and intel MPI. Quick fix is to add "not is_numeric::value" in the latter.

/usr/local/include/TiledArray/tensor/tensor.h:49:9: error: ambiguous template instantiation for 'struct TiledArray::detail::scalar_type<std::complex<double>, void>'
        numeric_type; ///< the numeric type that supports T

/usr/local/include/TiledArray/type_traits.h:108:12: note: candidates are: template<class T> struct TiledArray::detail::scalar_type<T, typename std::enable_if<TiledArray::detail::is_numeric<T>::value>::type> [with T = std::complex<double>]
    struct scalar_type<T, typename std::enable_if<is_numeric<T>::value>::type> {
           ^
/usr/local/include/TiledArray/type_traits.h:113:12: note:                 template<class T> struct TiledArray::detail::scalar_type<T, typename std::enable_if<TiledArray::detail::is_type<typename T::value_type>::value>::type> [with T = std::complex<double>]
    struct scalar_type<T, typename std::enable_if<is_type<typename T::value_type>::value>::type> :
           ^

CMakeLists.txt expects a git repository checkout even for releases

Running cmake on one of the release tarballs results in:

-- Found Git: /usr/bin/git (found version "2.1.4") 
fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at CMakeLists.txt:103 (string):
  string sub-command REGEX, mode MATCH regex "[0-9a-f]*" matched an empty
  string.
[...]
-- Configuring incomplete, errors occurred!

It seems CMakeLists.txt unconditionally expects a git repository, if I comment out lines 98-104 in CMakeLists.txt, cmake configures fine.

TiledArray Build which Pulls MADNESS is broken

A recent commit to madness, r3460 https://code.google.com/p/m-a-d-n-e-s-s/source/detail?r=3460, breaks TiledArray build.

Changes to linalg cause the following issue

[100%] Building CXX object examples/cc/CMakeFiles/inputlib.dir/input_data.cpp.o
tiledarray/src/TiledArray/madness.h:31:10: fatal error: 'linalg/cblas.h' file not found

include <linalg/cblas.h>

I'll look into, but I have tentatively assigned the issue to Justus since he is our resident madness expert.

Configure fails to compile eigen_test on OS X 10.8 using clang++ version 4.2

While trying to configure Tiledarray on OS X 10.8 using clang++ the configure step fails while trying to compile the eigen example. The compile command is the following

/opt/mpich2/bin/mpicxx -std=c++11 -DEIGEN_COMPILES -I/usr/local/include/eigen3 -o CMakeFiles/ cmTryCompileExec2548984095.dir/src.cxx.o -c /Users/drewlewis/software/build/tiledarray/tiledarray/CMakeFiles/CMakeTmp/src.cxx

The error is

In file included from /Users/drewlewis/software/build/tiledarray/tiledarray/CMakeFiles/CMakeTmp/src.cxx:2:
9 In file included from /usr/local/include/eigen3/Eigen/Core:256:
10 /usr/local/include/eigen3/Eigen/src/Core/util/Memory.h:737:23: error: no member named 'forward' in namespace 'std'
11 ::new(p) T(std::forward(args)...);

Suspected solution is that when compiling with clang++ CXXFLAGS should include -stdlib=libc++

Tiledarray does not build with "--elemental" and automatic madness build

../configure --elemental=/home/shiozaki/local

to get

-- Pulling MADNESS from: https://github.com/m-a-d-n-e-s-s/madness.git
Cloning into 'madness'...
remote: Counting objects: 37995, done.
remote: Total 37995 (delta 0), reused 0 (delta 0), pack-reused 37995
Receiving objects: 100% (37995/37995), 66.69 MiB | 31.57 MiB/s, done.
Resolving deltas: 100% (29900/29900), done.
Checking connectivity... done.
Note: checking out 'a62db8ac775573ced45095736cda85c8fda36935'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at a62db8a... Fixed a few bugs in Stack. Added unit tests.
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config'.
libtoolize: linking file `config/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `config'.
libtoolize: linking file `config/libtool.m4'
libtoolize: linking file `config/ltoptions.m4'
libtoolize: linking file `config/ltsugar.m4'
libtoolize: linking file `config/ltversion.m4'
libtoolize: linking file `config/lt~obsolete.m4'
configure.ac:46: installing 'config/compile'
configure.ac:37: installing 'config/config.guess'
configure.ac:37: installing 'config/config.sub'
configure.ac:14: installing 'config/install-sh'
configure.ac:14: installing 'config/missing'
src/apps/chem/Makefile.am: installing 'config/depcomp'
parallel-tests: installing 'config/test-driver'
-- Looking for madness.h
-- Looking for madness.h - found
-- Will pull Elemental from https://github.com/elemental/Elemental.git
configure: WARNING: you should use --build, --host, --target
configure: WARNING: you should use --build, --host, --target
configure: WARNING: you should use --build, --host, --target
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
configure: HOST INFORMATION:   x86_64-unknown-linux-gnu    x86_64    unknown    linux-gnu
checking for style of include used by make... GNU
checking for gcc... /usr/local/gcc/gcc-5.2.0/bin/gcc
checking whether the C compiler works... no
configure: error: in `/home/shiozaki/packages/tiledarray/obj/external/build/madness':
configure: error: C compiler cannot create executables
See `config.log' for more details
CMake Error at external/madness.cmake:360 (message):
  The MADNESS configure script failed.
Call Stack (most recent call first):
  CMakeLists.txt:163 (include)

According to config.log, Madness' configure is trying to do

  $ /home/shiozaki/packages/tiledarray/external/src/madness/configure --prefix=/home/shiozaki/packages/tiledarray/obj --enable-shared --disable-static --disable-debugging --disable-optimization --disable-optimal --disable-warning --enable-madex=throw --enable-dependency-tracking --with-mpi-thread=multiple --with-fortran-int32=yes --with-stubmpi=no --with-elemental=yes --with-tbb=yes   --without-mkl --without-libxc --without-google-perf  MPICXX=/usr/local/gcc/gcc-5.2.0/bin/g++ MPICC=/usr/local/gcc/gcc-5.2.0/bin/gcc CPPFLAGS=-I/home/shiozaki/packages/tiledarray/obj/external/build/elemental/include -I/opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mpi/intel64/include CC=/usr/local/gcc/gcc-5.2.0/bin/gcc CFLAGS=-O3 -DNDEBUG CXX=/usr/local/gcc/gcc-5.2.0/bin/g++ CXXFLAGS=-std=c++11 -O3 -DNDEBUG F77= FFLAGS= LDFLAGS= LIBS=/home/shiozaki/packages/tiledarray/obj/external/build/elemental/libelemental.a /home/shiozaki/packages/tiledarray/obj/external/build/elemental/external/pmrrr/libpmrrr.a /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mpi/intel64/lib/libmpifort.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mpi/intel64/lib/release_mt/libmpi.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mpi/intel64/lib/libmpigi.a /usr/lib64/libdl.so /usr/lib64/librt.so /usr/lib64/libpthread.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_gf_lp64.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_intel_lp64.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_gnu_thread.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_core.so /usr/local/lib64/libgomp.so -lpthread -lm /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_intel_lp64.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_gnu_thread.so /opt/intel/mkl-11.3/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_core.so /usr/local/lib64/libgomp.so -lpthread

the important part is:

CPPFLAGS=-I/home/shiozaki/packages/tiledarray/obj/external/build/elemental/include
LIBS=/home/shiozaki/packages/tiledarray/obj/external/build/elemental/libelemental.a

which is not what I intended. Namely I suspect that the path is not properly passed to madness' configure script. These directories are non-existent.

ta_test failing

ta_test fails to run I have the following information

Configure File
screen shot 2013-08-21 at 11 17 23 am

Trying to run the test
screen shot 2013-08-21 at 11 14 55 am

Test output
screen shot 2013-08-21 at 11 15 38 am

Backtrace on failed test.
screen shot 2013-08-21 at 11 16 32 am

CMake appears to find boost ok in /usr/local/lib and it also finds apple Accelerate Framework

bug (contraction)

The following dies at contraction without error messages. The memory usage is 5%. They are large matrices, but lapack can multiply them (with the integer 4 interface); so I think this should be a bug.

#include <tiledarray.h> // for TiledArray library
#include <complex>

namespace TA = TiledArray;
using namespace std;

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  vector<size_t> aa{0,5,10};

  // Construct a set of TiledRange1's
  TiledArray::TiledRange1 tileaa(aa.begin(), aa.end());

  vector<TiledArray::TiledRange1> ranges1{tileaa, tileaa, tileaa, tileaa, tileaa, tileaa, tileaa, tileaa};
  TA::TiledRange trange1(ranges1.begin(), ranges1.end());
  vector<TiledArray::TiledRange1> ranges2{tileaa, tileaa, tileaa, tileaa, tileaa};
  TA::TiledRange trange2(ranges2.begin(), ranges2.end());

  // Construct array objects.
  TA::Array<complex<double>,8> A(world, trange1);
  TA::Array<complex<double>,5> B(world, trange2);
  TA::Array<complex<double>,5> C(world, trange2);
  A.fill_local(0.0);
  B.fill_local(1.0);
  C.fill_local(2.0);

  cout << "starting multiplication" << endl;
  A("o1,o2,o3,o4,o5,o6,o7,o8") += B("o0,o1,o2,o3,o4") * C("o0,o5,o6,o7,o8");
  // actual code has permutation here, so please do not suggest to merge indices!
  // A("o5,o1,o6,o2,o7,o3,o8,o4") += B("o0,o1,o2,o3,o4") * C("o0,o5,o6,o7,o8");
  cout << "done" << endl;

  world.gop.fence();
  madness::finalize();
  return 0;
}

Madness as configured by TiledArray is compiling with tbb when it was not requested.

I used the following script to configure TiledArray in a clean build directory
screen shot 2014-12-08 at 9 38 35 am

configure works fine.

but when I try to make ta_dense I get the following errors plus more which are similar.
screen shot 2014-12-08 at 9 39 54 am

I then tried to do a vanilla configure of madness into a clean build directory using the following script
screen shot 2014-12-08 at 9 33 20 am

And at the end of the configure madness is trying to link TBB even thought I did not request it to.
screen shot 2014-12-08 at 9 33 56 am

I have checked my environment, and have nothing that should induce madness to do this, so I can only assume that it detected libtbb in my path, or -ltbb was included in the linking libraries without first checking to see if it exists.

Anyways, this means that building with the the osx-clang-accelerate toolchain on TiledArray commit 029c899 is broken.

Madness full stack on BR

I was running Hartree-Fock on Blueridge. Previously @pchong90 had reported that he couldn't reliably run 16+ node jobs, but he also never built with asserts and debugging information. Anyways sure enough my 16 node failed with the following errors

MadnessException : msg=MADNESS ASSERTION FAILED: "/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h"(65) : assertion=n < N : value=0 : line=65 : function=push : filename='/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h'

MadnessException : msg=MADNESS ASSERTION FAILED: "/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h"(65) : assertion=n < N : value=0 : line=65 : function=push : filename='/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h'

MadnessException : msg=MADNESS ASSERTION FAILED: "/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h"(65) : assertion=n < N : value=0 : line=65 : function=push : filename='/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h'

MadnessException : msg=MADNESS ASSERTION FAILED: "/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h"(65) : assertion=n < N : value=0 : line=65 : function=push : filename='/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h'

MadnessException : msg=MADNESS ASSERTION FAILED: "/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h"(65) : assertion=n < N : value=0 : line=65 : function=push : filename='/home/drew90/install/tiledarray/tiledarray_intel_no_tbb_no_tcc_rel_deb/include/madness/world/stack.h'

ta_dense segfaults in ~Array()

Main compiler flags
/usr/bin/clang++ -std=c++11 -stdlib=libc++ -march=native -g -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-flat_namespace -Wl,-no_pie

Code output

$ ./ta_dense 1000 100 10
MADNESS runtime initialized with 0 threads in the pool and affinity -1 -1 -1
TiledArray: dense matrix multiply test...
Number of nodes = 1
Matrix size = 1000x1000
Block size = 100x100
Memory per matrix = 0.008 GB
Number of blocks = 100
Average blocks/node = 100
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Iteration 6
Iteration 7
Iteration 8
Iteration 9
Iteration 10
Average wall time = 0.125785 sec
Average GFLOPS = 15.9002
Segmentation fault: 11

backtrace (sorry it is ugly)

  • thread #1: tid = 0x57b658, 0x0000000100032566 ta_dense`madness::TaskFn<void (this=0x000000010070c6a0, where=784288006, fn=0x0000000100031fe0, a1=0x00007fff5fbfedd8, a2=0x00007fff5fbfedac, a3=0x00000001000f3908, a4=0x00000001000f3908, a5=0x00000001000f3908, a6=0x00000001000f3908, a7=0x00000001000f3908, a8=0x00000001000f3908, a9=0x00000001000f3908, attr=0x00007fff5fbfece0)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int, void, void, void, void, void, void, void>::futureT madness::WorldTaskQueue::send_task<madness::TaskFn<void (*)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int, void, void, void, void, void, void, void>, void ()(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int, madness::Future, madness::Future, madness::Future, madness::Future, madness::Future, madness::Future, madness::Future >(int, void ()(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&, madness::Future const&, madness::Future const&, madness::Future const&, madness::Future const&, madness::Future const&, madness::Future const&, madness::Future const&, madness::TaskAttributes const&) + 134 at worldtask.h:455, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    • frame #0: 0x0000000100032566 ta_densemadness::TaskFn<void (this=0x000000010070c6a0, where=784288006, fn=0x0000000100031fe0, a1=0x00007fff5fbfedd8, a2=0x00007fff5fbfedac, a3=0x00000001000f3908, a4=0x00000001000f3908, a5=0x00000001000f3908, a6=0x00000001000f3908, a7=0x00000001000f3908, a8=0x00000001000f3908, a9=0x00000001000f3908, attr=0x00007fff5fbfece0)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int, void, void, void, void, void, void, void>::futureT madness::WorldTaskQueue::send_task<madness::TaskFn<void (*)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int, void, void, void, void, void, void, void>, void (*)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int, madness::Future<void>, madness::Future<void>, madness::Future<void>, madness::Future<void>, madness::Future<void>, madness::Future<void>, madness::Future<void> >(int, void (*)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (*)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&, madness::Future<void> const&, madness::Future<void> const&, madness::Future<void> const&, madness::Future<void> const&, madness::Future<void> const&, madness::Future<void> const&, madness::Future<void> const&, madness::TaskAttributes const&) + 134 at worldtask.h:455 frame #1: 0x0000000100032420 ta_densemadness::detail::function_enabler<void (this=0x000000010070c6a0, dest=784288006, fn=0x0000000100031fe0, a1=0x00007fff5fbfedd8, a2=0x00007fff5fbfedac, attr=0x00007fff5fbfece0)(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&)>::type madness::WorldTaskQueue::add<void ()(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int>(int, void ()(madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&), madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>_)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&, madness::TaskAttributes const&) + 224 at worldtask.h:793
      frame #2: 0x00000001000309b6 ta_densemadness::disable_ifmadness::is_future<int, void>::type madness::WorldGopInterface::send_internal<madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (this=0x000000010070c6c0, dest=784288006, key=0x00007fff5fbfedd8, value=0x00007fff5fbfedac)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag>, int>(int, madness::ProcessKey<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (_)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_)>::DistributedDeleterTag>, madness::WorldGopInterface::LazySyncTag> const&, int const&) const + 150 at worldgop.h:237 frame #3: 0x000000010002a028 ta_densevoid madness::WorldGopInterface::lazy_sync_internal<madness::WorldGopInterface::LazySyncTag, madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void (this=0x000000010070c6c0, parent=784288006, child0=-1, child1=-1, key=0x00007fff5fbff000, op=0x00007fff5fbfeff0)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>
      )>::DistributedDeleterTag>, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::LazyDelete>(int, int, int, madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::DistributedDeleterTag> const&, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void ()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::LazyDelete const&) const + 744 at worldgop.h:342
      frame #4: 0x0000000100029b1c ta_densevoid madness::WorldGopInterface::lazy_sync<madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (this=0x000000010070c6c0, key=0x00007fff5fbff000, op=0x00007fff5fbfeff0)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_)>::DistributedDeleterTag>, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (_)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_)>::LazyDelete>(madness::TaggedKey<madness::uniqueidT, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (_)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_)>::DistributedDeleterTag> const&, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (_)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_)>::LazyDelete const&) const + 204 at worldgop.h:942 frame #5: 0x0000000100029a41 ta_denseTiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>, void (this=0x00000001016138b0, t=0x0000000101613490)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>)>::operator()(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::DensePolicy>) + 209 at distributed_deleter.h:141
      frame #6: 0x0000000100035ae0 ta_densestd::__1::__shared_ptr_pointer<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>_, TiledArray::detail::DistributedDeleter<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>, void (this=0x0000000101613890)(TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>*)>, std::__1::allocator<TiledArray::detail::TensorImpl<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy> > >::__on_zero_shared() + 80 at memory:3669 frame #7: 0x00007fff8609f4d6 libc++.1.dylibstd::__1::__shared_weak_count::__release_shared() + 44
      frame #8: 0x00000001000228ff ta_dense~shared_ptr(this=0x00007fff5fbff400) + 47 at memory:4448 frame #9: 0x00000001000228c5 ta_dense~shared_ptr(this=0x00007fff5fbff400) + 21 at memory:4446
      frame #10: 0x00000001000881e5 ta_dense~Array(this=0x00007fff5fbff400) + 21 at array.h:42 frame #11: 0x0000000100004b95 ta_dense~Array(this=0x00007fff5fbff400) + 21 at array.h:42
      frame #12: 0x0000000100003ccc ta_dense`main(argc=4, argv=0x00007fff5fbff988) + 4444 at ta_dense.cpp:105

const Array block function failed

no known conversion from const TsrExpr < const Array< [4 * ...] > > to const TsrExpr < Array<[4 * ...] > >

/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/expressions/tsr_expr.h:232:16: error: no matching constructor for initialization of 'BlkTsrExpr<TiledArray::Array<double, 4, TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy> >'
        return BlkTsrExpr<A>(*this, lower_bound, upper_bound);
               ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/../cc/ccsd_t.h:153:109: note: in instantiation of function template specialization 'TiledArray::expressions::TsrExpr<const TiledArray::Array<double, 4, TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy> >::block<std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > >' requested here
                            t3("a,b,c,i,j,k") = g_diba("d,i,b,a").block(g_diba_low,g_diba_up)*t2("c,d,k,j").block(t2_cdkj_low,t2_cdkj_up);
                                                                                                            ^
/Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/../cc/ccsd_t.h:38:35: note: in instantiation of member function 'tcc::cc::CCSD_T<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>::compute_ccsd_t_direct' requested here
                double ccsd_t_d = compute_ccsd_t_direct(t1, t2);
                                  ^
/Users/ChongPeng/Workspace/Development/source/TileClusterChem_fork/examples/ccsd.cpp:640:12: note: in instantiation of member function 'tcc::cc::CCSD_T<TiledArray::Tensor<double, Eigen::aligned_allocator<double> >, TiledArray::DensePolicy>::compute' requested here
    ccsd_t.compute();
           ^
/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/expressions/blk_tsr_expr.h:91:7: note: candidate constructor [with Index = std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >] not viable: no known conversion from 'const TsrExpr<const Array<[4 * ...]>>' to 'const TsrExpr<Array<[4 * ...]>>' for 1st argument
      BlkTsrExpr(const TsrExpr<A>& tsr, const Index& lower_bound,
      ^
/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/expressions/blk_tsr_expr.h:79:7: note: candidate constructor not viable: requires 1 argument, but 3 were provided
      BlkTsrExpr(const BlkTsrExpr_&) = default;
      ^
/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/expressions/blk_tsr_expr.h:80:7: note: candidate constructor not viable: requires 1 argument, but 3 were provided
      BlkTsrExpr(BlkTsrExpr_&&) = default;
      ^
/Users/ChongPeng/Workspace/Development/install/tiledarray-clang/include/TiledArray/expressions/blk_tsr_expr.h:78:7: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
      BlkTsrExpr() = delete;

ta_sparse fails with commit 4a6a89b91a4a6e542ae11c0ffe1554f506acb3ee

There is an exception thrown in tensor_impl.h:381. I tried compiling with both old summa and new summa.

[100%] Building CXX object examples/dgemm/CMakeFiles/ta_sparse.dir/ta_sparse.cpp.o
cd /Users/drewlewis/software/build/tiledarray/sparse_new_summa/examples/dgemm && /usr/bin/clang++ -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -stdlib=libc++ -march=native -g -I/usr/local/Cellar/mpich2/3.1.2/include -I/Users/drewlewis/software/tiledarray/src -I/Users/drewlewis/software/build/tiledarray/sparse_new_summa/src -I/usr/local/include/eigen3 -I/Users/drewlewis/software/build/tiledarray/sparse_new_summa/external/build/madness/src -I/Users/drewlewis/software/tiledarray/external/src/madness/src -o CMakeFiles/ta_sparse.dir/ta_sparse.cpp.o -c /Users/drewlewis/software/tiledarray/examples/dgemm/ta_sparse.cpp
Linking CXX executable ta_sparse
cd /Users/drewlewis/software/build/tiledarray/sparse_new_summa/examples/dgemm && /usr/local/Cellar/cmake/2.8.12.2/bin/cmake -E cmake_link_script CMakeFiles/ta_sparse.dir/link.txt --verbose=1
/usr/bin/clang++ -std=c++11 -stdlib=libc++ -march=native -g -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Wl,-flat_namespace CMakeFiles/ta_sparse.dir/ta_sparse.cpp.o -o ta_sparse ../../external/build/madness/src/madness/world/libMADworld.a /opt/intel/composer_xe_2013_sp1/mkl/lib/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1/mkl/lib/libmkl_core.a /opt/intel/composer_xe_2013_sp1/mkl/lib/libmkl_sequential.a /opt/intel/composer_xe_2013_sp1/mkl/lib/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1/mkl/lib/libmkl_core.a /opt/intel/composer_xe_2013_sp1/mkl/lib/libmkl_sequential.a /usr/local/Cellar/mpich2/3.1.2/lib/libmpi.dylib /usr/local/Cellar/mpich2/3.1.2/lib/libpmpi.dylib /usr/lib/libpthread.dylib
/usr/local/Cellar/cmake/2.8.12.2/bin/cmake -E cmake_progress_report /Users/drewlewis/software/build/tiledarray/sparse_new_summa/CMakeFiles 41
[100%] Built target ta_sparse
/usr/local/Cellar/cmake/2.8.12.2/bin/cmake -E cmake_progress_start /Users/drewlewis/software/build/tiledarray/sparse_new_summa/CMakeFiles 0
Leave-me-alone:dgemm drewlewis$ ./ta_sparse 1000 100 10
MADNESS runtime initialized with 1 threads in the pool and affinity -1 -1 -1
TiledArray: block-sparse matrix multiply test...
Number of nodes = 1
Matrix size = 1000x1000
Block size = 100x100
Memory per left matrix = 0.0008 GB
Memory per right matrix = 0.0008 GB
Number of left blocks = 10 10 percent
Number of right blocks = 10 10 percent
Average left blocks/node = 10
Average right blocks/node = 10
!!ERROR TiledArray: TiledArray: exception at /Users/drewlewis/software/tiledarray/src/TiledArray/tensor_impl.h(381): assertion failure

Build Issue with alignment

This is a clean build, i.e. using the Madness that ships with TA. I get several errors along the lines of:

/XXX/TiledArray/math/transpose.h(140): error: attribute "aligned" does not allow an empty argument list
        TILEDARRAY_ALIGNED_STORAGE Result temp[block_size];

Looking at TiledArray/config.h line 44:

#define TILEDARRAY_ALIGNMENT 

there is no value.

another bug

[shiozaki@zinc src]$ ./a.out 
MADNESS runtime initialized with 31 threads in the pool and affinity -1 -1 -1
TiledArray: exception at /usr/local/include/TiledArray/tensor/tensor.h(1119): assertion failure
MADNESS: fatal error: caught an STL exception
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0

The complete code

#include <tiledarray.h> // for TiledArray library

namespace TA = TiledArray;

int main(int argc, char** argv) {
  // Initialize runtime
  madness::World& world = madness::initialize(argc, argv);

  // Construct tile boundary vector
  std::vector<std::size_t> virt {0,2,10,18};
  std::vector<std::size_t> occ  {0,3,5};
  std::vector<std::size_t> closed {0,3};
  std::vector<std::size_t> active {0,2};

  // Construct a set of TiledRange1's
  TiledArray::TiledRange1 tilevirt(virt.begin(), virt.end());
  TiledArray::TiledRange1 tileocc(occ.begin(), occ.end());
  TiledArray::TiledRange1 tileclosed(closed.begin(), closed.end());
  TiledArray::TiledRange1 tileactive(active.begin(), active.end());

  std::vector<TiledArray::TiledRange1> ranges1{tileactive, tileactive, tileactive, tileactive, tileactive, tileactive};
  std::vector<TiledArray::TiledRange1> ranges2{tilevirt, tileocc, tilevirt, tileocc};
  std::vector<TiledArray::TiledRange1> ranges3{tileactive, tileactive, tileactive, tileclosed};

  // Construct the 2D TiledRange
  TA::TiledRange trange1(ranges1.begin(), ranges1.end());
  TA::TiledRange trange2(ranges2.begin(), ranges2.end());
  TA::TiledRange trange3(ranges3.begin(), ranges3.end());

  // Construct array objects.
  TA::Array<double, 6> a(world, trange1);
  TA::Array<double, 4> b(world, trange2);
  TA::Array<double, 4> c(world, trange3);

  // Initialize a and b.
  a.fill_local(2.0);
  b.fill_local(3.0);
  c.fill_local(0.0);

// fails
  c("x2, x1, x0, c1").block({0,0,0,0},{1,1,1,1}) += a("x2, x1, x3, x0, x4, x5").block({0,0,0,0,0,0},{1,1,1,1,1,1}) * b("x3, c1, x4, x5").block({0,0,0,1},{1,1,1,2});

  // Wait for all the computation to complete before exiting
  world.gop.fence();

  madness::finalize();
  return 0;
}

How to shallow copy tiles?

Given a large blocked tensor, I am trying to build new tensors, whose tiles are actually those from the larger tensor.

For example, pretend that my large tensor is a matrix and it is tiled in a 2 by 2 format. I now want to make another matrix whose only tile is say the second tile of the larger matrix (application being to grabbing say the alpha or beta blocks of a quantity). Moreover, I do not want to deep copy the tile; deep copying the meta data is acceptable. I presume there is a way to do this?

Here is a stripped down version of what I have tried:

int main(int argc, char** argv){
     TiledArray::World& world=madness::initialize(argc,argv);
     std::array<size_t,3> Boundaries({0,4,8});

     typedef TiledArray::TiledRange1 Range1_t;
     typedef TiledArray::TiledRange Range_t;
     typedef TiledArray::Array<double,2> Matrix;

     std::vector<Range1_t>
        LargeRange(2,Range1_t(Boundaries.begin(),Boundaries.end())),
        SmallRange(2,Range1_t(Boundaries.begin(),Boundaries.end()-1));

     Matrix Large(world,Range_t(LargeRange.begin(),LargeRange.end())),
            Small(world,Range_t(SmallRange.begin(),SmallRange.end()));

     //Fill each block with its ordinal number
     Matrix::iterator LI=Large.begin(),LIEnd=Large.end();
     for(size_t i=0;i<4;++i)
        if(Large.is_local(i))
           Large.set(i,Matrix::value_type(Large.trange().make_tile_range(i),i));
     Small.set(0,Large.find(1));

      if(world.rank()==0) std::cout<<"Large"<<std::endl;
      std::cout<<Large;
      if(world.rank()==0)std::cout<<std::endl<<"Small"<<std::endl;
      std::cout<<Small;
}//End main

Using one MPI process this produces:

Large
0: [ [0,0], [4,4] ) { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }
1: [ [0,4], [4,8] ) { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }
2: [ [4,0], [8,4] ) { 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 }
3: [ [4,4], [8,8] ) { 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 }

Small
0: [ [0,4], [4,8] ) { 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 }

as (somewhat) expected (I would have expected the small tensor to be labeled as 0:[[0,0],[4,4]), but the indices from the large tensor are alright too). All subsequent, single process, tries produce the same output.

With two MPI processes I get:

terminate called after throwing an instance of 'TiledArray::Exception'
  what():  TiledArray: exception at /xxx/TiledArray/distributed_storage.h(83): Tile has already been assigned.

As a sanity check I tried:

     Small.set(0,Large.find(1).get());

and have been met with the same result. Thinking this is a data locality issue, I then tried:

    if(Small.is_local(0))Small.set(0,Large.find(1));

and get:

!! MADNESS ERROR: Mutex::lock() failed acquiring mutex
!! MADNESS ERROR: Mutex error EINVAL
!! MADNESS ERROR: The value specified by mutex does not refer to an initialized mutex object.
A madness exception occurred. Place a break point at madness::exception_break to debug.

Trying the get() member of the returned future leads to a similar error, as does ensuring that the large tile is local [both with and without the get() member]:

    if(Small.is_local(0)&&Large.is_local(1))Small.set(0,Large.find(1));

Completing the power set:

     if(Large.is_local(1))Small.set(0,Large.find(1).get());

leads to the same error as well.

Am I doing something wrong, or is this feature not supported?

col-major tile support

need to use col-major tiles, e.g. BTAS::Tensor with col-major storage. This will allow also direct interoperation with ScaLAPACK.

TiledArray expression dot is broken with latest version.

[ 52%] Building CXX object src/lib/chemistry/qc/scf/CMakeFiles/scf.dir/taclscf.cpp.o
cd /Users/drewlewis/software/build/mpqc/finalizing_tascf/src/lib/chemistry/qc/scf && /usr/local/bin/mpicxx -DHAVE_CONFIG_H -DMPQC_NEW_FEATURES -DMPQC_R12 -std=c++11 -DNDEBUG -O3 -std=c++11 -stdlib=libc++ -O3 -DNDEBUG -I/Users/drewlewis/software/build/mpqc/finalizing_tascf/src/lib -I/Users/drewlewis/software/mpqc_teaching/src/lib -I/Users/drewlewis/software/mpqc_teaching/include -I/usr/local/Cellar/mpich2/3.1/include -I/Users/drewlewis/software/build/mpqc/optimize/external/build/libint/include -I/Users/drewlewis/software/build/mpqc/optimize/external/build/libint/include/libint2 -I/usr/local/include/eigen3 -I/Users/drewlewis/software/install/elem/include -I/Users/drewlewis/software/install/tiledarray/opt/include -I/Users/drewlewis/software/build/mpqc/finalizing_tascf/external/build/boost/src/boost -o CMakeFiles/scf.dir/taclscf.cpp.o -c /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/taclscf.cpp
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/taclscf.cpp:28:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/taclscf.h:31:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/tascf.h:31:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/wfn/tawfn.h:34:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/basis/tiledbasisset.h:31:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/tiledarray.h:24:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/array.h:28:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions.h:29:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/scal_expr.h:29:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/unary_expr.h:29:
/Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/expr.h:403:50: error:
no type named 'eval_type' in 'TiledArray::Tensor<double,
Eigen::aligned_allocator >'
typename D::engine_type::value_type::eval_type> > reduction_op_type;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/taclscf.cpp:139:24: note:
in instantiation of function template specialization
'TiledArray::expressions::Expr<TiledArray::expressions::TsrExpr<const
TiledArray::Array<double, 2, TiledArray::Tensor<double,
Eigen::aligned_allocator >, TiledArray::DensePolicy> >
>::dot<TiledArray::expressions::AddExpr<TiledArray::expressions::TsrExpr<const
TiledArray::Array<double, 2, TiledArray::Tensor<double,
Eigen::aligned_allocator >, TiledArray::DensePolicy> >,
TiledArray::expressions::TsrExpr<TiledArray::Array<double, 2,
TiledArray::Tensor<double, Eigen::aligned_allocator >,
TiledArray::DensePolicy> > > >' requested here
return rdm1()("i,j").dot(ao_hcore()("i,j") + ao_fock()("i,j"));
^
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/taclscf.cpp:28:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/taclscf.h:31:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/scf/tascf.h:31:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/wfn/tawfn.h:34:
In file included from /Users/drewlewis/software/mpqc_teaching/src/lib/chemistry/qc/basis/tiledbasisset.h:31:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/tiledarray.h:24:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/array.h:28:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions.h:29:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/scal_expr.h:29:
In file included from /Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/unary_expr.h:29:
/Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/expr.h:405:16: error:
no matching member function for call to 'reduce'
return reduce(right_expr, reduction_op_type(), world);
^~~~~~
/Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/expr.h:277:7: note:
candidate template ignored: substitution failure [with D =
TiledArray::expressions::AddExpr<TiledArray::expressions::TsrExpr<const
TiledArray::Array<double, 2, TiledArray::Tensor<double,
Eigen::aligned_allocator >, TiledArray::DensePolicy> >,
TiledArray::expressions::TsrExpr<TiledArray::Array<double, 2,
TiledArray::Tensor<double, Eigen::aligned_allocator >,
TiledArray::DensePolicy> > >, Op = int]: type 'int' cannot be used prior to '::'
because it has no members
reduce(const Expr& right_expr, const Op& op,
^
/Users/drewlewis/software/install/tiledarray/opt/include/TiledArray/expressions/expr.h:246:7: note:
candidate function template not viable: requires at most 2 arguments, but 3 were
provided
reduce(const Op& op, madness::World& world = madness::World::get_default(...

Building on Vesta with the vesta tool chain

Madness has a build error on vesta which is silent if you don't use VERBOSE make.
make madness-build VERBOSE=1
. . .
In file included from /home/calewis/tiledarray/external/src/madness/src/lib/world/worldthread.cc:63:
In file included from /bgsys/drivers/V1R2M2/ppc64/spi/include/kernel/location.h:36:
In file included from /bgsys/drivers/V1R2M2/ppc64/spi/include/kernel/process.h:194:
/bgsys/drivers/V1R2M2/ppc64/spi/include/kernel/cnk/process_impl.h:132:10: error: static declaration of 'Kernel_GetJobID' follows
non-static declaration
uint64_t Kernel_GetJobID()
^
/bgsys/drivers/V1R2M2/ppc64/spi/include/kernel/process.h:188:10: note: previous declaration is here
uint64_t Kernel_GetJobID();

Configure script looks like

!/bin/sh

cmake -DCMAKE_INSTALL_PREFIX=$HOME/install/tiledarray_clang
-DCMAKE_TOOLCHAIN_FILE=$HOME/tiledarray/cmake/toolchains/vesta-clang11-essl.cmake
-DCMAKE_BUILD_TYPE=Debug
$HOME/tiledarray

soft file looks like
+cmake
+mpiwrapper-bgclang.legacy

autotools

PATH = /soft/buildtools/autotools/aug2013/bin:$PATH

@default

Calls to truncate are hanging.

On Hyades calls to truncate appear to hang until timeout. Adding c.truncate() to line 170 of ta_sparse hangs with backtrace
#0 0x0000003fcfcaccd0 in __nanosleep_nocancel () from /lib64/libc.so.6

1 0x0000003fcfce1e44 in usleep () from /lib64/libc.so.6
#2 0x00000000005f4175 in madness::myusleep (us=10000) at /hyades/home/valeev/calewis/software/upstream_tiledarray/external/src/madness/src/madness/world/worldtime.h:176
#3 0x00000000005f4417 in madness::MutexWaiter::yield (this=0x7fffffffbcc0, us=10000)

at /hyades/home/valeev/calewis/software/upstream_tiledarray/external/src/madness/src/madness/world/worldmutex.h:79

#4 0x00000000005f41e0 in madness::MutexWaiter::wait (this=0x7fffffffbcc0)

at /hyades/home/valeev/calewis/software/upstream_tiledarray/external/src/madness/src/madness/world/worldmutex.cc:63

#5 0x000000000056b2c9 in madness::ThreadPool::awaitTiledArray::detail::CounterProbe (probe=..., dowork=true)

at /hyades/home/valeev/calewis/software/upstream_tiledarray/external/src/madness/src/madness/world/worldthread.h:1084

#6 0x0000000000565243 in madness::World::awaitTiledArray::detail::CounterProbe (probe=..., dowork=true)

at /hyades/home/valeev/calewis/software/upstream_tiledarray/external/src/madness/src/madness/world/worldfwd.h:686

#7 0x000000000055b839 in TiledArray::SparsePolicy::truncate<TiledArray::Array<double, 2u, TiledArray::Tensor, TiledArray::SparsePolicy> > (array=...)

at /hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/policies/sparse_policy.h:89

#8 0x00000000005570ba in TiledArray::Array<double, 2u, TiledArray::Tensor<double, Eigen::aligned_allocator >, TiledArray::SparsePolicy>::truncate (this=0x7fffffffc1c0)

at /hyades/home/valeev/calewis/software/upstream_tiledarray/src/TiledArray/array.h:487

#9 0x0000000000549362 in main (argc=4, argv=0x7fffffffc648) at /hyades/home/valeev/calewis/software/upstream_tiledarray/examples/dgemm/ta_sparse.cpp:170

Frame 6 is
683 /// Probe should be an object that when called returns the status.
684 template
685 static void inline await(const Probe& probe, bool dowork = true) {
686 ThreadPool::await(probe, dowork);
687 }

probe is
(const TiledArray::detail::CounterProbe &) @0x7fffffffbd80: {counter_ = @0x7fffffffbdc0, n_ = 8}

probe.counter_ is
(const madness::AtomicInt &) @0x7fffffffbdc0: {value = -16920}

After looking at madness::AtomicInt, and SparsePolicy::truncate, it seems possible that AtomicInt counter should have been set to 0 at some point?

test suite ta_test not built on "make"

The installation instructions are not very clear on that (INSTALL only seems to reference an older autotools-based installation?), but I did the following:

git clone https://github.com/ValeevGroup/tiledarray.git
mkdir build
cd build
cmake -DTA_BUILD_UNITTEST=ON ..
make

This resulted in no output.

If I run "make test" instead, I get:

Running tests...
Test project /home/mbanck/hacking/src/tiledarray/build
    Start 1: ta_test
Could not find executable ta_test
Looked in the following places:
ta_test
ta_test
Release/ta_test
Release/ta_test
Debug/ta_test
Debug/ta_test
MinSizeRel/ta_test
MinSizeRel/ta_test
RelWithDebInfo/ta_test
RelWithDebInfo/ta_test
Deployment/ta_test
Deployment/ta_test
Development/ta_test
Development/ta_test
Unable to find executable: ta_test
1/1 Test #1: ta_test ..........................***Not Run   0.00 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =   0.00 sec

The following tests FAILED:
      1 - ta_test (Not Run)
Errors while running CTest
Makefile:117: recipe for target 'test' failed
make: *** [test] Error 8

What seems to be required is "cd tests; make ta_test", which builds the test suite. However, I think this should be hardwired into the top-level make at least if the user passes -DTA_BUILD_UNITTEST=ON to cmake.

Finally, I get the following errors running the testsuite:

MADNESS runtime initialized with 3 threads in the pool and affinity -1 -1 -1
Running 393 test cases...
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(224): error in "scale": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.407999992} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(254): error in "scale_perm": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.407999992} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(284): error in "add": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(314): error in "add_scale": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(345): error in "add_perm": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(376): error in "add_scale_perm": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(471): error in "subt": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(501): error in "subt_scale": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(532): error in "subt_perm": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%
/home/mbanck/debian/debichem/tiledarray-0.4.3-alpha/tests/sparse_shape.cpp(563): error in "subt_scale_perm": difference{100%} between result.sparsity(){0} and float(zero_tile_count) / float(tr.tiles().volume()){0.39199999} exceeds 9.99999975e-05%

*** 10 failures detected in test suite "Master Test Suite"
ta_test: /usr/include/boost/test/impl/execution_monitor.ipp:710: static boost::detail::system_signal_exception& boost::detail::signal_handler::sys_sig(): Assertion `!!s_active_handler' failed.


0% tests passed, 1 tests failed out of 1

Is this currently expected, am I doing something else wrong or should I open a separate issue for that?

MADNESS Compile failed with TA_ERROR=assert

Configure File

module purge
module load cmake/3.1.3
module load intel/15.3
module load impi/5.0
module load mkl

#source /opt/apps/intel/15.3/tbb/bin/tbbvars.sh intel64

cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
      -DCMAKE_TOOLCHAIN_FILE=${SOURCE_DIR}/cmake/toolchains/blueridge-intel.cmake \
      -DENABLE_TBB=OFF \
      -DENABLE_SHARED_LIBRARIES=OFF \
      -DCMAKE_BUILD_TYPE=RELWITHDEBINFO \
      -DTA_ERROR=assert \
      -DTA_BUILD_UNITTEST=FALSE \
      -DEIGEN_INCLUDE_DIR=/home/pchong90/opt/include/eigen3 \
      ${SOURCE_DIR}

Error Message:

Scanning dependencies of target madness-build
[100%] 'madness'
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-redirectio.lo -MD -MP -MF .deps/libMADworld_la-redirectio.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/redirectio.cc -o libMADworld_la-redirectio.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-world.lo -MD -MP -MF .deps/libMADworld_la-world.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.cc -o libMADworld_la-world.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-timers.lo -MD -MP -MF .deps/libMADworld_la-timers.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/timers.cc -o libMADworld_la-timers.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-future.lo -MD -MP -MF .deps/libMADworld_la-future.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc -o libMADworld_la-future.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-archive_type_names.lo -MD -MP -MF .deps/libMADworld_la-archive_type_names.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/archive_type_names.cc -o libMADworld_la-archive_type_names.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-madness_exception.lo -MD -MP -MF .deps/libMADworld_la-madness_exception.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/madness_exception.cc -o libMADworld_la-madness_exception.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-info.lo -MD -MP -MF .deps/libMADworld_la-info.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/info.cc -o libMADworld_la-info.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-debug.lo -MD -MP -MF .deps/libMADworld_la-debug.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/debug.cc -o libMADworld_la-debug.o
In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-print.lo -MD -MP -MF .deps/libMADworld_la-print.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/print.cc -o libMADworld_la-print.o
libtool: compile:  /opt/apps/intel/15.3/bin/intel64/icpc -DHAVE_CONFIG_H -I/home/pchong90/Development/source/tiledarray/external/src/madness/src -I../../../src -I/home/pchong90/Development/source/tiledarray/external/src/madness/src/apps "-DMADNESS_GITREVISION=\"a62db8ac775573ced45095736cda85c8fda36935\" " -I/opt/apps/intel15_3/impi/5.0/intel64/include -DMPICH_SKIP_MPICXX=1 -DOMPI_SKIP_MPICXX=1 -std=c++11 -gxx-name=/opt/apps/gcc/4.9.2/bin/g++ -O2 -g -Wall -MT libMADworld_la-worldmem.lo -MD -MP -MF .deps/libMADworld_la-worldmem.Tpo -c /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmem.cc -o libMADworld_la-worldmem.o
In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/MADworld.h(42),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/archive_type_names.cc(44):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/MADworld.h(42),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/archive_type_names.cc(44):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

.
.
.
In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(316): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(statuses != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(316): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(statuses != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(384): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(384): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(384): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(390): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(390): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(390): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(518): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(Is_initialized());
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(518): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(Is_initialized());
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(518): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(Is_initialized());
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(543): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(543): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(543): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(562): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(562): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(562): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(569): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(569): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(569): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(574): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(574): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(574): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(579): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(579): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(579): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(584): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(584): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(584): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(592): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(592): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(592): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(600): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(600): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(600): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(607): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(607): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(607): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(615): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(615): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(615): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(621): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(621): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(621): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(627): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(627): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(627): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(633): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(633): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(633): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(639): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(639): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(639): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(644): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(644): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(644): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(656): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(656): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(656): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(671): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(671): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(671): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(681): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(681): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldmpi.h(55),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.h(68),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/dependency_interface.h(44),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.h(45),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc(38):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(681): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(278): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(296): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(296): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(296): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(314): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(314): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(314): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(requests != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(315): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(indices != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(315): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(indices != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(315): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(indices != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(316): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(statuses != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(316): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(statuses != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(316): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(statuses != nullptr);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(384): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(384): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(384): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(390): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(390): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(390): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(518): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(Is_initialized());
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(518): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(Is_initialized());
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(518): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(Is_initialized());
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(543): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(543): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(543): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(562): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(562): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(562): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(569): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(569): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(569): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(574): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(574): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(574): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(579): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(579): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(579): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(584): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(584): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(584): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(592): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(592): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(592): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(600): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(600): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(600): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(607): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(607): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(607): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(615): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(615): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(615): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(621): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(621): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(621): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(627): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(627): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(627): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(633): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(633): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(633): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(639): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(639): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(639): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(644): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(644): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(644): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(656): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(656): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(656): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(671): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(671): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(671): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(681): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(681): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

In file included from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.h(35),
                 from /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc(34):
/home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/safempi.h(681): error: argument of type "const char *" is incompatible with parameter of type "void *"
              MADNESS_ASSERT(pimpl);
              ^

compilation aborted for /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/future.cc (code 2)
make[4]: *** [libMADworld_la-future.lo] Error 1
compilation aborted for /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/world.cc (code 2)
make[4]: *** [libMADworld_la-world.lo] Error 1
compilation aborted for /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/redirectio.cc (code 2)
make[4]: *** [libMADworld_la-redirectio.lo] Error 1
compilation aborted for /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/worldrmi.cc (code 2)
compilation aborted for /home/pchong90/Development/source/tiledarray/external/src/madness/src/madness/world/archive_type_names.cc (code 2)
make[4]: *** [libMADworld_la-worldrmi.lo] Error 1
make[4]: *** [libMADworld_la-archive_type_names.lo] Error 1
make[3]: *** [world] Error 2
make[2]: *** [CMakeFiles/madness-build] Error 2
make[1]: *** [CMakeFiles/madness-build.dir/all] Error 2
make: *** [all] Error 2

BlkTsrExpr does not compile with Index = std::initializer_list<long unsigned int>

TiledArray/expressions/blk_tsr_expr.h
At Line 121, compilation breaks when Index is 'const std::initializer_list', which seems to be the one used in tests/expressions.cpp. Breaks because "<<" is not defined according to GCC 5.2.

/usr/local/include/TiledArray/expressions/blk_tsr_expr.h:117:13: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'const std::initializer_list<long unsigned int>')
105       template <typename Index>
106       BlkTsrExpr(const TsrExpr<A>& tsr, const Index& lower_bound,
107           const Index& upper_bound) :
108         Expr_(), array_(tsr.array()), vars_(tsr.vars()),
109         lower_bound_(std::begin(lower_bound), std::end(lower_bound)),
110         upper_bound_(std::begin(upper_bound), std::end(upper_bound))
111       {
112 #ifndef NDEBUG
113         const unsigned int rank = array_.trange().tiles().rank();
114         // Check the dimension of the lower block bound
115         if(TiledArray::detail::size(lower_bound) != rank) {
116           if(World::get_default().rank() == 0) {
117             TA_USER_ERROR_MESSAGE( \
118                 "The size lower bound of the block is not equal to rank of " \
119                 "the array: " \
120                 << "\n    array rank  = " << array_.trange().tiles().rank() \
121                 << "\n    lower bound = " << lower_bound );

assignment etc to BlkTsrExpr

Because assignment, += and, -= are deleted, one cannot do this sort of operation.

a("a2,c1,a4,c3").block({2,0,2,0}, {4,1,4,1})
= b("x1,a2,c1,a4").block({1,2,0,2}, {2,4,1,4}) * c("c3,x1").block({0,1}, {1,2});

This use case is very common in MR theories because the target residual tensor has some super-structure, requiring us to use the block expressions for tensors on the left.

PS: @evaleev this is what I meant in the email.

Madness doesn't compile on blueridge

When performing a default installation of TiledArray on BlueRidge madness fails to compile due to an autotools issue.

[ 12%] Performing patch step for 'madness' cd /home/drew90/devel/tiledarray/external/src/madness && aclocal -I ./ && autoconf && autoheader && automake --add-missing
configure.ac:16: warning: macro `AM_PROG_AR' not found in library src/apps/moldft/Makefile.am:4: MADNESS_HAS_LIBXC does not appear in AM_CONDITIONAL
 src/apps/moldft/Makefile.am:30: MADNESS_HAS_LIBXC does not appear in AM_CONDITIONAL
make[2]: *** [external/build/madness/stamp/madness-patch] Error 1
make[2]: Leaving directory `/home/drew90/devel/build/tiledarray/tiledarray'
make[1]: *** [CMakeFiles/madness.dir/all] Error 2
make[1]: Leaving directory `/home/drew90/devel/build/tiledarray/tiledarray'
make: *** [all] Error 2

Possible Performance Issue with DirectTile Array Contraction?

I noticed some inconsistency in the performance in direct tile array contraction.
Here is the output.

CC Test
Frozen Core: 16 electrons
Block Size in MO     16
TiledRange1 Occupied ( tiles = [ 0, 2 ), elements = [ 0, 21 ) )
TiledRange1 Virtual  ( tiles = [ 0, 51 ), elements = [ 0, 803 ) )

Begining CC
start iteration
iter     deltaE                residual             energy         U/second   total/second
1  0.0611231317123433  4.26012753086288e-10  -1.53904486737057  7009.242363154 7408.379613357
2  0.0399401658471812  1.73605236907515e-10  -1.57898503321775  5475.195483026 5702.249691427
3  0.0107532244924691  7.03545478472614e-11  -1.58973825771022  8330.972643913 8562.005677823
4  0.000622645030980973  2.26645163814899e-11  -1.58911561267924  4515.994389942 4761.335676287
5  0.000292624947780151  1.0037030826343e-11  -1.58882298773146  4015.300883278 4247.982380656
6  0.00030492243288549  3.97572330838135e-12  -1.58912791016435  2969.095039533 3162.468504955
7  0.000231114981430247  1.63338874450642e-12  -1.58889679518291  1563.37255113 1754.09951477
8  4.19793105643773e-05  6.21390025858168e-13  -1.58893877449348  3897.680281818 4118.719245746
9  9.66978594729717e-06  3.44425382366613e-13  -1.58892910470753  11974.894220928 12752.963265018
10  5.62034317974636e-07  1.63034768374226e-13  -1.58892854267321  4978.137758322 5214.837211002

The U part is the contraction between direct integral array with another array and it scales O(N^6).

(t2("a,b,i,j")*Ca_("q,a"))*Ca_("s,b") + tc("i,q") * tc("j,s")) * direct_ao_("p,q,r,s")

total - U is everything else.
I notice that total - U is around 200-400 seconds per iteration. While the U time range from 1500 to 12000 seconds.

I was wondering what causes this problem. It could be the integral generation in direct tile or something in TA.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.