Re: [deal.II] Re: CMake extra libraries?

2017-07-13 Thread Bruno Turcksin
Victor,

I have never seen anything like that before :-/ The only thing I found
is this (very) old thread without a reply
https://cmake.org/pipermail/cmake/2006-April/008893.html Someone got a
similar problem than yours when updating cmake. So maybe try another
version of cmake.

Best,

Bruno

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] Re: CMake extra libraries?

2017-07-13 Thread Victor Eijkhout
PS where it actually crashes is this:









Dependee "/opt/apps/intel17/boost/1.64/include/boost/visit_each.hpp" does 
not exist for depender 
"source/numerics/CMakeFiles/obj_numerics_release.dir/vector_tools_rhs.cc.o".

Dependee "/opt/apps/intel17/boost/1.64/include/boost/weak_ptr.hpp" does not 
exist for depender 
"source/numerics/CMakeFiles/obj_numerics_release.dir/vector_tools_rhs.cc.o".

Clearing dependencies in 
"/tmp/dealii-build/source/numerics/CMakeFiles/obj_numerics_release.dir/depend.make"
.

Scanning dependencies of target obj_numerics_release

make[2]: Leaving directory `/tmp/dealii-build'

make -f source/numerics/CMakeFiles/obj_numerics_release.dir/build.make 
source/numerics/CMakeFiles/obj_numerics_release.dir/build

make[2]: Entering directory `/tmp/dealii-build'

[ 36%] Building CXX object 
source/numerics/CMakeFiles/obj_numerics_release.dir/data_out.cc.o

cd /tmp/dealii-build/source/numerics && 
/opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/intel64/bin/mpicxx   
-I/tmp/dealii-build/source/numerics -I/tmp/dealii-build/include 
-I/admin/build/rpms/BUILD/dealii-git20170615/include 
-I/admin/build/rpms/BUILD/dealii-git20170615/bundled/tbb41_20130401oss/include 
-I/admin/build/rpms/BUILD/dealii-git20170615/bundled/umfpack/UMFPACK/Include 
-I/admin/build/rpms/BUILD/dealii-git20170615/bundled/umfpack/AMD/Include 
-I/admin/build/rpms/BUILD/dealii-git20170615/bundled/muparser_v2_2_4/include 
-I/opt/intel/compilers_and_libraries_2017.4.196/linux/mpi/intel64/include 
-I/home1/apps/intel17/impi17_0/petsc/3.7/knightslanding/include 
-I/home1/apps/intel17/impi17_0/trilinos/12.10.1/include 
-I/opt/apps/intel17/boost/1.64/include 
-I/opt/apps/intel17/impi17_0/parallel-netcdf/4.3.3.1/x86_64/include 
-I/opt/apps/intel17/impi17_0/phdf5/1.8.16/x86_64/include 
-I/opt/intel/compilers_and_libraries/linux/mkl/include 
-I/home1/apps/intel17/impi17_0/petsc/3.7/include 
-I/home1/apps/intel17/impi17_0/p4est/2.0/include 
-I/home1/apps/intel17/impi17_0/slepc/3.7/knightslanding/include 
-I/home1/apps/intel17/impi17_0/slepc/3.7/include  -fpic -ansi -w2 -wd21 
-wd68 -wd135 -wd175 -wd177 -wd191 -wd193 -wd279 -wd327 -wd383 -wd981 
-wd1418 -wd1478 -wd1572 -wd2259 -wd2536 -wd3415 -wd15531 -wd111 -wd128 
-wd185 -wd280 -qopenmp-simd -std=c++14 -std=c++14 -Wno-return-type 
-Wno-parentheses -O2 -no-ansi-alias -ip -funroll-loops -std=c++14 
-xCORE-AVX2 -axMIC-AVX512,CORE-AVX512 -O2 -o 
CMakeFiles/obj_numerics_release.dir/data_out.cc.o -c 
/admin/build/rpms/BUILD/dealii-git20170615/source/numerics/data_out.cc

In file included from 
/admin/build/rpms/BUILD/dealii-git20170615/include/deal.II/base/work_stream.h(21),

 from 
/admin/build/rpms/BUILD/dealii-git20170615/source/numerics/data_out.cc(16):

/admin/build/rpms/BUILD/dealii-git20170615/include/deal.II/base/graph_coloring.h(23):
 
catastrophic error: cannot open source file "boost/unordered_map.hpp"

  #include 

^

and this file exists:

root@build-BLDCHROOT:SPECS # ls -l 
/opt/apps/intel17/boost/1.64/include/boost/unordered_map.hpp 

-rw-r--r-- 1 root install 568 Jul 13 20:03 /opt/apps/intel17/boost/1.64/
include/boost/unordered_map.hpp


-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] Re: CMake extra libraries?

2017-07-13 Thread Victor Eijkhout
Our boost was broken. Having repaired it, I get the following:

[ 36%] Built target obj_numerics_inst

make -f source/numerics/CMakeFiles/obj_numerics_release.dir/build.make 
source/numerics/CMakeFiles/obj_numerics_release.dir/depend

make[2]: Entering directory `/tmp/dealii-build'

cd /tmp/dealii-build && /opt/apps/cmake/3.8.2/bin/cmake -E cmake_depends 
"Unix Makefiles" /admin/build/rpms/BUILD/dealii-git20170615 
/admin/build/rpms/BUILD/dealii-git20170615/source/numerics 
/tmp/dealii-build /tmp/dealii-build/s\

ource/numerics 
/tmp/dealii-build/source/numerics/CMakeFiles/obj_numerics_release.dir/DependInfo.cmake
 
--color=

Dependee "/opt/apps/intel17/boost/1.64/include/boost/aligned_storage.hpp" 
does not exist for depender 
"source/numerics/CMakeFiles/obj_numerics_release.dir/data_out.cc.o".

Dependee "/opt/apps/intel17/boost/1.64/include/boost/any.hpp" does not 
exist for depender 
"source/numerics/CMakeFiles/obj_numerics_release.dir/data_out.cc.o".

Followed by many thousands of lines of "does not exist", all on files that 
do actually exist:

root@build-BLDCHROOT:SPECS # ls -l 
/opt/apps/intel17/boost/1.64/include/boost/aligned_storage.hpp

-rw-r--r-- 1 root install 653 Jul  3 16:00 /opt/apps/intel17/boost/1.64/
include/boost/aligned_storage.hpp

Any ideas?

We probably have more than one boost in the system, but cmake is finding 
the right one:

--   BOOST_VERSION: 1.64.0

--   BOOST_LIBRARIES: /opt/apps/intel17/boost/1.64/lib/libboost_iostreams.so
;/opt/apps/intel17/boost/1.64/lib/libboost_serialization.so;/opt/apps/
intel17/boost/1.64/lib/libboost_system.so;/opt/apps/intel17/boost/1.64/lib/
libboost\

_thread.so;/opt/apps/intel17/boost/1.64/lib/libboost_regex.so;/opt/apps/
intel17/boost/1.64/lib/libboost_chrono.so;/opt/apps/intel17/boost/1.64/lib/
libboost_date_time.so;/opt/apps/intel17/boost/1.64/lib/libboost_atomic.so

--   BOOST_INCLUDE_DIRS: /opt/apps/intel17/boost/1.64/include

--   BOOST_USER_INCLUDE_DIRS: /opt/apps/intel17/boost/1.64/include

-- Found BOOST


-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] segmentation fault when calling make_vectorized_array

2017-07-13 Thread Denis Davydov
Thanks a lot for your help, Martin!

Cheers,
Denis

> On 13 Jul 2017, at 11:02, Martin Kronbichler  
> wrote:
> 
> Hi Denis,
> 
>> While on the topic of alignment, do I need to be more careful about using
>> 
>> template 
>> struct QPData
>> {
>>Table<2, VectorizedArray > values;
>> }
>> QPData qp_data;
>> 
>> as a member variable in my class? 
> 
> Table is fine because it is based on AlignedVector, so it 
> will use the correct alignment internally.
> 
> Best,
> Martin
> 
> -- 
> The deal.II project is located at http://www.dealii.org/ 
> 
> For mailing list/forum options, see 
> https://groups.google.com/d/forum/dealii?hl=en 
> 
> --- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "deal.II User Group" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/dealii/xccZy4KU7Zc/unsubscribe 
> .
> To unsubscribe from this group and all its topics, send an email to 
> dealii+unsubscr...@googlegroups.com 
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] segmentation fault when calling make_vectorized_array

2017-07-13 Thread Martin Kronbichler
Hi Denis,


> While on the topic of alignment, do I need to be more careful about using
>
> template
> structQPData
> {
>Table<2, VectorizedArray > values;
> }
> QPData qp_data;
>
> as a member variable in my class?

Table is fine because it is based on AlignedVector,
so it will use the correct alignment internally.

Best,
Martin

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] segmentation fault when calling make_vectorized_array

2017-07-13 Thread Denis Davydov
Hi Martin,

> On 13 Jul 2017, at 09:13, Martin Kronbichler  
> wrote:
> 
>> 
>> no, it's just a member variable VectorizedArray: 
>> 
>> VectorizedArray a;
> 
> But then the class/struct that holds this member variable is not properly 
> aligned, you probably have it inside an std::vector or allocated it with 
> 'new'. You will need to put it into an AlignedVector or similar type.

this is a matrix-free level operator which lives in MGLevelObject.
Indeed, internally it stores objects in std::vector of shared pointers.

> Alternatively you need to wrap the member that is of type VectorizedArray 
> into an t.

This worked, thanks a lot!


While on the topic of alignment, do I need to be more careful about using

template 
struct QPData
{
   Table<2, VectorizedArray > values;
}
QPData qp_data;

as a member variable in my class? 

> 
>> 
>>   >│0x773913cb ::Operator()+35> 
>>   vmovaps %ymm0,0xe0(%rbx)
> 
> This is the offending instruction. The compiler tries to store to the address 
> given by an offset of 0xe0 (224 bytes) to the value in %rbx, using an 
> 'aligned' store operation (vmovAps) that assumes 32 byte alignment. If you 
> print the value of %rbx (in gdb with 'print $rbx'), I'm pretty sure you get 
> an address that is divisible by 16 but not by 32. It is a pity that the 
> compiler / API of the intrinsics forces the compiler to 

indeed:

(gdb) print $rbx
$1 = 22305328

Thanks a lot for detailed explanation.

Kind regards,
Denis.

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] segmentation fault when calling make_vectorized_array

2017-07-13 Thread Martin Kronbichler

Hi Denis,




no, it's just a member variable VectorizedArray:

VectorizedArray a;


But then the class/struct that holds this member variable is not 
properly aligned, you probably have it inside an std::vector or 
allocated it with 'new'. You will need to put it into an AlignedVector 
or similar type. Alternatively you need to wrap the member that is of 
type VectorizedArray into an AlignedVector.




|
  >│0x773913cb ::Operator()+35>   vmovaps %ymm0,0xe0(%rbx)

|


This is the offending instruction. The compiler tries to store to the 
address given by an offset of 0xe0 (224 bytes) to the value in %rbx, 
using an 'aligned' store operation (vmovAps) that assumes 32 byte 
alignment. If you print the value of %rbx (in gdb with 'print $rbx'), 
I'm pretty sure you get an address that is divisible by 16 but not by 
32. It is a pity that the compiler / API of the intrinsics forces the 
compiler to use an aligned access instruction whenever there is a 
variable of type VectorizedArray but there's nothing we can change and 
we have to live with that...


Best,
Martin

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.