IntelLabs / ParallelAccelerator.jl

The ParallelAccelerator package, part of the High Performance Scripting project at Intel Labs
BSD 2-Clause "Simplified" License
294 stars 32 forks source link

Build failure with julia 0.5.0 and also with 0.6.0-dev #134

Closed bondhugula closed 7 years ago

bondhugula commented 7 years ago

g++ --version g++ (GCC) 6.2.1 20160916 (Red Hat 6.2.1-2)

Julia version 0.5.0 (2016-09-19 18:14 UTC)

julia> Pkg.add("ParallelAccelerator") ; INFO: Installing CompilerTools v0.2.0 INFO: Installing DataStructures v0.4.6 INFO: Installing DocOpt v0.2.0 INFO: Installing ParallelAccelerator v0.2.1 INFO: Building ParallelAccelerator ParallelAccelerator: build.jl begin. ParallelAccelerator: Building j2c-array shared library Using icpc to build ParallelAccelerator array runtime. In file included from /usr/include/c++/6.2.1/set(60), from include/j2c-array.h(41), from j2c-array.cpp(26): /usr/include/c++/6.2.1/bits/stl_tree.h(1437): error: identifier "_Compare" is undefined && is_nothrow_move_assignable<_Compare>::value) ^

In file included from /usr/include/c++/6.2.1/set(60), from include/j2c-array.h(41), from j2c-array.cpp(26): /usr/include/c++/6.2.1/bits/stl_tree.h(1778): error: identifier "_Compare" is undefined _GLIBCXX_NOEXCEPT_IF(__is_nothrow_swappable<_Compare>::value) ^

compilation aborted for j2c-array.cpp (code 2) ================================================[ ERROR: ParallelAccelerator ]================================================

LoadError: failed process: Process(./build.sh '' /opt/intel/composer_xe_2015.3.187/compiler/lib/intel64:/opt/intel/composer_xe_2015.3.187/mpirt/lib/intel64:/opt/intel/composer_xe_2015.3.187/ipp/../compiler/lib/intel64:/opt/intel/composer_xe_2015.3.187/ipp/lib/intel64:/opt/intel/composer_xe_2015.3.187/ipp/tools/intel64/perfsys:/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64:/opt/intel/composer_xe_2015.3.187/mkl/lib/intel64:/opt/intel/composer_xe_2015.3.187/tbb/lib/intel64/gcc4.1:/opt/intel/composer_xe_2015.3.187/debugger/libipt/intel64/lib:/usr/lib64/openmpi/lib:/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64:/opt/intel/composer_xe_2015.3.187/mpirt/lib/intel64:/opt/intel/composer_xe_2015.3.187/ipp/../compiler/lib/intel64:/opt/intel/composer_xe_2015.3.187/ipp/lib/intel64:/opt/intel/composer_xe_2015.3.187/ipp/tools/intel64/perfsys:/opt/intel/composer_xe_2015.3.187/compiler/lib/intel64:/opt/intel/composer_xe_2015.3.187/mkl/lib/intel64:/opt/intel/composer_xe_2015.3.187/tbb/lib/intel64/gcc4.1:/opt/intel/composer_xe_2015.3.187/debugger/libipt/intel64/lib:/usr/lib64/openmpi/lib:, ProcessExited(2)) [2] while loading /home/user/.julia/v0.5/ParallelAccelerator/deps/build.jl, in expression starting on line 94

==============================================================================================================================

=======================================================[ BUILD ERRORS ]=======================================================

WARNING: ParallelAccelerator had build errors.

packages with build errors remain installed in /home/user/.julia/v0.5 build the package(s) and all dependencies with Pkg.build("ParallelAccelerator") build a single package by running its deps/build.jl script

INFO: Package database updated

lkuper commented 7 years ago

I don't think anyone's tested building the package with a GCC newer than 4.8.4 (or if we have, I'm not aware of it).

bondhugula commented 7 years ago

GCC 4.8.4 was released more than 2 years ago! All recent releases of Fedora (23, 24) or Ubuntu ship with GCC 5.x or 6.x. Mine is Fedora 24.

lkuper commented 7 years ago

Yes, we should take a look at this. It might be easy to fix with a compiler flag.

Although GCC 4.8.4 is still pretty widespread; for instance, it's what our Travis builds (running Ubuntu 14.04) use (and that is a Travis default, not something we set up specifically).

ehsantn commented 7 years ago

Looks like the error is caused by just including std set. Your system has Intel compiler 2015 installed, which is probably not compatible with GCC 6.2 since it is older. Note that ICC uses GCC for standard libraries. Installing ICC 2017 or using compatible GCC can solve the issue (https://software.intel.com/en-us/node/684551).

lkuper commented 7 years ago

@bondhugula Did @ehsantn's suggestion (making sure you don't have incompatible ICC and GCC versions installed simultaneously) solve the problem you were having? If not, feel free to reopen this issue.

FWIW, since my previous comment I've been testing ParallelAccelerator with various newer GCC versions and not had any serious problems, so I don't think that was ever the issue.