valeevgroup / tiledarray Goto Github PK
View Code? Open in Web Editor NEWA massively-parallel, block-sparse tensor framework written in C++
License: GNU General Public License v3.0
A massively-parallel, block-sparse tensor framework written in C++
License: GNU General Public License v3.0
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).
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;
}
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 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’
Symmetry, anti-symmetry, and bra-ket symmetry (with complex conjugation).
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
I think the title says it all, in the 0.4-alpha branch, src/TiledArray/algebra/diis.h includes "<TiledArray/eigen.h>
", which no longer exists. 270b524 fixes this on master and I think this should be cherry-picked to 0.4-alpha.
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.
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.
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;
}
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;
}
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);
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;
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;
}
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_; }
...
I think you missed this while refactoring:
https://github.com/ValeevGroup/tiledarray/blob/master/src/TiledArray/array_impl.h#L283
specifically:
other.tensor_
should be:
other.array_
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> :
^
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.
The mpi libraries don't get linked in by calling make ta_dense.
I was able to compile ta_dense by copying the compile command and changing the compiler from bglcang++11 to mpiclang++11.
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
I'll look into, but I have tentatively assigned the issue to Justus since he is our resident madness expert.
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++
../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.
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;
}
I used the following script to configure TiledArray in a clean build directory
configure works fine.
but when I try to make ta_dense I get the following errors plus more which are similar.
I then tried to do a vanilla configure of madness into a clean build directory using the following script
And at the end of the configure madness is trying to link TBB even thought I did not request it to.
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.
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'
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)
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<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_dense
madness::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:793madness::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_dense
void 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:342void 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_dense
TiledArray::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:141std::__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.dylib
std::__1::__shared_weak_count::__release_shared() + 44~shared_ptr(this=0x00007fff5fbff400) + 47 at memory:4448 frame #9: 0x00000001000228c5 ta_dense
~shared_ptr(this=0x00007fff5fbff400) + 21 at memory:4446~Array(this=0x00007fff5fbff400) + 21 at array.h:42 frame #11: 0x0000000100004b95 ta_dense
~Array(this=0x00007fff5fbff400) + 21 at array.h:42no 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;
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
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.
t2("a,b,i,j") = g_abij("a,b,i,j");
After I update t2, g_abij is also updated. So, it this a bug? Or, is there another way to do deep copy?
[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;
}
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?
need to use col-major tiles, e.g. BTAS::Tensor with col-major storage. This will allow also direct interoperation with ScaLAPACK.
instead of zgemm, to reduce the cost by 25%.
(On a separate note, there are some other useful MKL extensions such as transposition)
[ 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(...
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
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
PATH = /soft/buildtools/autotools/aug2013/bin:$PATH
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?
example expression
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);
will provide more detail later.
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?
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
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 );
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.
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
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.
If a tile is not used in a sparse contraction, it will stay in memory indefinitely.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.