Compilation issues with both intel & gnu compilers

已查看 42 次
跳至第一个未读帖子

Robert Thompson

未读,
2014年10月9日 07:13:512014/10/9
收件人 sunri...@googlegroups.com
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

Chris Hayward

未读,
2014年10月10日 14:40:072014/10/10
收件人 sunri...@googlegroups.com
Hi Robert,

You shouldn't have to modify the code to compile with the Intel compilers (I still need to look into the Gnu issue that Tom Quinn wrote about). So, it may be related to blitz. What version are you using?

Cheers,

Chris


--
You received this message because you are subscribed to the Google Groups "Sunrise" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sunrisemcrx...@googlegroups.com.
To post to this group, send email to sunri...@googlegroups.com.
Visit this group at http://groups.google.com/group/sunrisemcrx.
For more options, visit https://groups.google.com/d/optout.



--
Chris Hayward
Moore Postdoctoral Scholar in Theoretical Astrophysics
California Institute of Technology
Office: Cahill 326
Phone: 626-395-6987
Mailing: Caltech 350-17
1200 E. California Blvd.
Pasadena, CA 91125

Robert Thompson

未读,
2014年10月10日 14:45:462014/10/10
收件人 sunri...@googlegroups.com
You shouldn't have to modify the code to compile with the Intel compilers (I still need to look into the Gnu issue that Tom Quinn wrote about). So, it may be related to blitz. What version are you using?
I’m following the compilation guide on the wiki as closely as possible, which leaves me with blitz revision d4a8862b671a.

-Robert


You received this message because you are subscribed to a topic in the Google Groups "Sunrise" group.
To unsubscribe from this topic, visithttps://groups.google.com/d/topic/sunrisemcrx/6NawoZ4b__c/unsubscribe.
To unsubscribe from this group and all its topics, send an email tosunrisemcrx...@googlegroups.com.

Chris Hayward

未读,
2014年12月12日 13:51:252014/12/12
收件人 sunri...@googlegroups.com
Hi everyone,

In case others have had the same problem with hilbert.cc from libPJutil, I also ran into this and sorted it out. It turned out to be an issue with blitz: even though the changeset previously specified worked for me (with v11 of the Intel compilers) on the cluster at my previous institution, it didn't work here. The most recent changeset works, and I've been able to compile everything and run Sunrise on the Caltech cluster. I've updated the wiki accordingly.

I still need to sort out the gcc issues. So, for the time being, the strong recommendation to use the Intel compilers if at all possible still holds.

Cheers,

Chris
回复全部
回复作者
转发
0 个新帖子