Hi everyone,
I'm revisiting the compilation of sunrise again and am stuck. I've tried this on multiple different machines, with both the intel and gnu compilers and have deatiled the issues below.
INTEL
The ElGato machine at Arizona has the intel 14.0.0 20130728 compiler & intel-mpi software installed. I can get all the way through each compilation step until libPJutil, where I encounter the following error:
In file included from hilbert.cc(26):
hilbert.h(358): error: no operator ">>" matches these operands
In file included from hilbert.cc(26):
operand types are: const hilbert::qpoint::T_pos >> int
In file included from hilbert.cc(26):
return T_pbits((pos()>>(level()-l))&0x01); };
^
compilation aborted for hilbert.cc (code 2)
make: *** [hilbert.lo] Error 1
Just to see if I could get past this, I switched "return T_pbits((pos()>>(level()-I))&0x01); };" to "return T_pbits(pos()); };" and it compiled fine. This will probably break something so is there a proper way to fix this? Next I tried compiling sunrise itself, and ran into the following error:
xfer_impl.h(517): error: class "blitz::TinyVector<mcrx::T_float={double}, 10>" has no member "extent"
const int nlambda = i_in_.extent(blitz::firstDim);
^
detected during instantiation of "void mcrx::xfer<dust_model_type, grid_type>::process_ray_forced()
[with dust_model_type=mcrx::generic_dust_model<mcrx::aux_pars_type, mcrx::mcrx_rng_policy>,
grid_type=mcrx::aux_grid<mcrx::T_aux_adaptive_grid, mcrx::cumulative_sampling, mcrx::local_random>]" at line 382
optical.h(323): error: class "blitz::TinyVector<mcrx::T_float={double}, 10>" has no member "extent"
const int nlambda = intensity_.extent(blitz::firstDim);
^
detected during:
instantiation of "void mcrx::absorber<lambda_type>::add_intensity(const
mcrx::absorber<lambda_type>::T_lambda &) [with lambda_type=mcrx::aux_pars_type]" at line 529 of "xfer_impl.h"
instantiation of "void mcrx::xfer<dust_model_type, grid_type>::process_ray_forced() [with
dust_model_type=mcrx::generic_dust_model<mcrx::aux_pars_type, mcrx::mcrx_rng_policy>,
grid_type=mcrx::aux_grid<mcrx::T_aux_adaptive_grid, mcrx::cumulative_sampling, mcrx::local_random>]" at
line 382 of "xfer_impl.h"
compilation aborted for xfer_inst2.cc (code 2)
make[2]: *** [libmcrx_a-xfer_inst2.o] Error 2
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
Is this and the libPJutil error somehow related to a bad blitz compilation?
GNU
On a local cluster here at UWC using the gnu compiler 4.4.7 I was able to get up to libPJutil again without issue. But once there I got some nasty MPI errors:
http://pastebin.com/GsU6Z0AK
If I switched the compiler at this point to mpic++ (and used the fix detailed in INTEL for the unknown operator >>) it compiles fine. But now during the Sunrise install it cannot find TBB, even though all header files are present and the correct directory is in the CPPFLAGS environment variable.
checking for main in -lboost_serialization... yes
checking tbb/concurrent_queue.h usability... no
checking tbb/concurrent_queue.h presence... no
checking for tbb/concurrent_queue.h... no
checking for main in -ltbb... no
configure: error: Could not find TBB library.
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.
Any help is greatly appreciated!
-Robert