libpjutil compilation error

129 views
Skip to first unread message

Robert Thompson

unread,
Apr 19, 2013, 7:18:49 PM4/19/13
to sunri...@googlegroups.com
Hi there,

I'm revisiting the compilation of SUNRISE again on my MAC and ran into a snag when compiling libpjutil.  I've nabbed the latest version from bitbucket as the guide suggests and successfully configure it.  However, when I run make I get the following error:

[bob @ Galileo ~/local/src/sunrisedepends/libpjutil]$ make
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DPACKAGE_NAME=\"libPJutil\" -DPACKAGE_TARNAME=\"libpjutil\" -DPACKAGE_VERSION=\"1.11\" -DPACKAGE_STRING=\"libPJutil\ 1.11\" -DPACKAGE_BUGREPORT=\"Patrik\ Jonsson\ \<sun...@familjenjonsson.org\>\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libPJutil\" -DVERSION=\"1.11\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_NCEG_RESTRICT_EGCS=/\*\*/ -DHAVE_PTHREAD=1 -DHAVE_BOOST=/\*\*/ -DHAVE_BOOST_THREAD=/\*\*/ -DHAVE_BOOST_SERIALIZATION=/\*\*/ -DSTDC_HEADERS=1 -DHAVE_STDBOOL_H=1 -DHAVE_LIBBLITZ=1 -DHAVE_BLITZ_ARRAY_H=1 -DHAVE_RANDOM_UNIFORM_H=1 -DHAVE_LIBCFITSIO=1 -DHAVE_FITSIO_H=1 -DHAVE_LIBCCFITS=1 -DHAVE_CCFITS_CCFITS=1 -DHAVE_POW=1 -DHAVE_SQRT=1 -I.   -pthreads -I/Users/bob/local/sunrise/depends/include  -O2 -pthread -MT hilbert.lo -MD -MP -MF .deps/hilbert.Tpo -c -o hilbert.lo hilbert.cc
libtool: compile:  g++ -DPACKAGE_NAME=\"libPJutil\" -DPACKAGE_TARNAME=\"libpjutil\" -DPACKAGE_VERSION=\"1.11\" "-DPACKAGE_STRING=\"libPJutil 1.11\"" "-DPACKAGE_BUGREPORT=\"Patrik Jonsson <sun...@familjenjonsson.org>\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"libPJutil\" -DVERSION=\"1.11\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" "-DHAVE_NCEG_RESTRICT_EGCS=/**/" -DHAVE_PTHREAD=1 "-DHAVE_BOOST=/**/" "-DHAVE_BOOST_THREAD=/**/" "-DHAVE_BOOST_SERIALIZATION=/**/" -DSTDC_HEADERS=1 -DHAVE_STDBOOL_H=1 -DHAVE_LIBBLITZ=1 -DHAVE_BLITZ_ARRAY_H=1 -DHAVE_RANDOM_UNIFORM_H=1 -DHAVE_LIBCFITSIO=1 -DHAVE_FITSIO_H=1 -DHAVE_LIBCCFITS=1 -DHAVE_CCFITS_CCFITS=1 -DHAVE_POW=1 -DHAVE_SQRT=1 -I. -pthreads -I/Users/bob/local/sunrise/depends/include -O2 -pthread -MT hilbert.lo -MD -MP -MF .deps/hilbert.Tpo -c hilbert.cc  -fno-common -DPIC -o .libs/hilbert.o
In file included from hilbert.cc:26:
hilbert.h: In member function 'blitz::TinyVector<unsigned char, 3> hilbert::qpoint::extract_level(uint8_t) const':
hilbert.h:358: error: no match for 'operator>>' in 'hilbert::qpoint::pos() >> (((int)hilbert::qpoint::level()) - ((int)l))'
make: *** [hilbert.lo] Error 1

I'm not super familiar with C++ so I'm not sure I could track the error down myself in the source.  Has anyone ran into this issue in the past, and if so how did they resolve it?  Thanks!

-Robert

Chris Hayward

unread,
Apr 19, 2013, 7:57:51 PM4/19/13
to sunri...@googlegroups.com
Hi Robert,

What version of blitz are you using? The error may relate to that.

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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 


--
Chris Hayward
Heidelberger Institut für Theoretische Studien
Schloss-Wolfsbrunnenweg 35
69118 Heidelberg, Germany
Google Voice: +1 (617) 744-9416
Office: +49 6221 533 284
Fax: +49 6221 533 298
http://www.cfa.harvard.edu/~chayward

Robert Thompson

unread,
Apr 19, 2013, 8:03:00 PM4/19/13
to sunri...@googlegroups.com
Hey Chris,

Sorry I should have mentioned what version of Blitz I was using.  The wiki mentions that change d4a8862b671a set is known to work so I cloned the repo, then 

hg revert -r d4a8862b671a --all

from within the repo and followed the compilation instructions beyond that.

-Robert
 
You received this message because you are subscribed to a topic in the Google Groups "Sunrise" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sunrisemcrx/oK0ZfwjVgKY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to sunrisemcrx...@googlegroups.com.

Robert Thompson

unread,
Apr 20, 2013, 5:20:49 AM4/20/13
to sunri...@googlegroups.com
I updated blitz the latest changeset (ab84372f3dce) and libpjutil now compiles.  Sunrise configures now as well.  However, when I tried to make sunrise I got boost serialization errors which seem to be resolved by adding --with-boost=$HOME to the blitz configuration.  Now I am stuck again and am getting the following make error when attempting to make sunrise:

Making all in src
make  all-am
g++ -DHAVE_CONFIG_H -I.  -DMCRXVERSION="\"426cec091e86+ default tip 2012-07-26\"" -I/Users/bob/local/sunrisedepends/include -I/Users/bob/local/sunrisedepends/include/libPJutil -I/Users/bob/local/sunrisedepends/tbb41_20130314oss/include -I/Users/bob/local/sunrisedepends/include/blitz -D_THREAD_SAFE  -I/Users/bob/local/openmpi-1.6.2/include -ggdb -O3 -pthread -I/Users/bob/local/openmpi-1.6.2/include -MT libmcrx_a-aux_emergence.o -MD -MP -MF .deps/libmcrx_a-aux_emergence.Tpo -c -o libmcrx_a-aux_emergence.o `test -f 'aux_emergence.cc' || echo './'`aux_emergence.cc
In file included from grid.h:57,
                 from emission.h:38,
                 from emergence.h:42,
                 from aux_emergence.h:29,
                 from aux_emergence.cc:25:
grid_impl.h:43: warning: ‘mcrx::grid_cell<cell_data_type>’ is already a friend of ‘mcrx::octogrid< <template-parameter-1-1> >’
In file included from emission.h:38,
                 from emergence.h:42,
                 from aux_emergence.h:29,
                 from aux_emergence.cc:25:
grid.h: In constructor ‘mcrx::adaptive_grid< <template-parameter-1-1> >::adaptive_grid(const mcrx::vec3d&, const mcrx::vec3d&, const std::vector<bool, std::allocator<bool> >&)’:
grid.h:316: error: class ‘mcrx::adaptive_grid< <template-parameter-1-1> >’ does not have any field named ‘g_’
In file included from emergence.h:42,
                 from aux_emergence.h:29,
                 from aux_emergence.cc:25:
emission.h: In member function ‘const mcrx::grid_cell<mcrx::cell_data<mcrx::grid_cell_emission< <template-parameter-1-1>, <template-parameter-1-2> >, mcrx::absorber<typename mcrx::volumetric_emission<A, B>::T_lambda> > >* mcrx::grid_cell_emission< <template-parameter-1-1>, <template-parameter-1-2> >::cell() const’:
emission.h:706: error: ‘cell_’ was not declared in this scope
emission.h: In member function ‘virtual mcrx::ray_distribution_pair<typename mcrx::divergent_floodlight_emission< <template-parameter-1-1>, <template-parameter-1-2> >::T_lambda> mcrx::divergent_floodlight_emission< <template-parameter-1-1>, <template-parameter-1-2> >::emit(typename mcrx::emission<chromatic_policy, rng_policy_type>::T_biaser, rng_policy_type&, mcrx::T_float&) const’:
emission.h:965: error: ‘radius’ was not declared in this scope
In file included from aux_emergence.h:31,
                 from aux_emergence.cc:25:
aux_grid.h: At global scope:
aux_grid.h:45: error: using ‘typename’ outside of template
In file included from aux_emergence.cc:26:
emergence-fits.h: In member function ‘void mcrx::emergence< <template-parameter-1-1> >::write_parameters(CCfits::FITS&, const mcrx::T_unit_map&) const’:
emergence-fits.h:114: error: there are no arguments to ‘open_HDU’ that depend on a template parameter, so a declaration of ‘open_HDU’ must be available
emergence-fits.h:114: error: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make[2]: *** [libmcrx_a-aux_emergence.o] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1


Any advice on how to proceed?  There seems to be one similar issue previously found here:


but the resolution cited was to change to the intel compiler.  Can this code not be compiled with g++/gcc?  Thanks for your time!  (I've tried this with mpi and without mpi flags, both result in the same error)

-Robert

Chris Hayward

unread,
Apr 22, 2013, 9:43:26 AM4/22/13
to sunri...@googlegroups.com
Hi Robert,

This error is a bit opaque to me. Do you need to use gcc for some reason, or can you use the Intel compiler? I use the Intel compiler, and I don't know whether gcc can be used. I tried to compile with gcc on a new cluster but ran into problems (partially because gcc 4.7.0 doesn't work with Boost 1.48.0, but I don't think Sunrise likes later versions of Boost) and ended up switching back to Intel (which I had used previously), which solved the problem.

Out of curiosity, what version of Boost 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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Robert Thompson

unread,
Apr 22, 2013, 12:16:42 PM4/22/13
to sunri...@googlegroups.com
This error is a bit opaque to me. Do you need to use gcc for some reason, or can you use the Intel compiler? I use the Intel compiler, and I don't know whether gcc can be used. I tried to compile with gcc on a new cluster but ran into problems (partially because gcc 4.7.0 doesn't work with Boost 1.48.0, but I don't think Sunrise likes later versions of Boost) and ended up switching back to Intel (which I had used previously), which solved the problem.
When I switch to the intel compilers libPJutil cannot find the blitz headers for whatever reason.  I include the directory in the CPP flags, the files are certainly there, yet icpc doesn't find them.  I've tried both revisions d4a8862b671a and the current version (ab84372f3dce) to no avail.  The wiki says not to mix compilers so I'm trying to stick to one or the other!


Out of curiosity, what version of Boost are you using?
Boost 1_48_0 as suggested.

-Robert


You received this message because you are subscribed to a topic in the Google Groups "Sunrise" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sunrisemcrx/oK0ZfwjVgKY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to sunrisemcrx...@googlegroups.com.

Chris Hayward

unread,
Apr 22, 2013, 12:44:19 PM4/22/13
to sunri...@googlegroups.com
If you used gcc to compile blitz, that could be the problem. When I switched back to the Intel compiler, I recompiled all the necessary libraries with it and then everything built successfully.

Cheers,

Chris

Robert Thompson

unread,
Apr 22, 2013, 12:48:57 PM4/22/13
to sunri...@googlegroups.com
If you used gcc to compile blitz, that could be the problem. When I switched back to the Intel compiler, I recompiled all the necessary libraries with it and then everything built successfully.
What I mean is:

using gcc and g++:  can compile everything until I get to sunrise, then I get the errors originally detailed in this email.

using icc and icpc:  can compile everything until I get to libPJutil - it cannot find blitz headers even though they were compiled with icpc.

-Robert

Chris Hayward

unread,
Apr 22, 2013, 1:02:24 PM4/22/13
to sunri...@googlegroups.com
OK, thanks for the clarification. I have my blitz headers in $HOME/include/blitz and do not need to specify the path when compiling libPJutil.

I can diagnose this further if you send me the flags you used to build and configuration output for blitz, the same for libPJutil, and the make output for libPJutil.

C

Robert Thompson

unread,
Apr 22, 2013, 1:14:50 PM4/22/13
to sunri...@googlegroups.com
OK, thanks for the clarification. I have my blitz headers in $HOME/include/blitz and do not need to specify the path when compiling libPJutil.
I just included the path explicitly when I first encountered the error.


I can diagnose this further if you send me the flags you used to build and configuration output for blitz, the same for libPJutil, and the make output for libPJutil.
Here are the script/flags I use for building blitz:

HOME=/Users/bob
LOC=/Users/bob/local/sunrisedepends
INSTALL=/Users/bob/local/sunrise
MPILIBS=$HOME/bob/local/openmpi/lib
MPIINCLUDE=$HOME/local/openmpi/include
TBBLIBS=$HOME/local/src/sunrisedepends/tbb41_20130314oss/lib
TBBINCLUDE=$HOME/local/src/sunrisedepends/tbb41_20130314oss/include

LIBS="-L$MPILIBS -L$TBBLIBS"
INCL="-I$MPIINCLUDE -I$TBBINCLUDE"

    cd blitz
    autoreconf -fiv
    export CXX=icpc

    export CPPFLAGS=$INCL
    export CXXFLAGS="-g -O2 -pthread"
    export LDFLAGS="-pthread $LIBS"
    ./configure --prefix=$LOC --enable-threadsafe --disable-cxx-flags-preset --enable-serialization --with-boost=$LOC
    make lib
    make install

And here is the output of running this: http://pastebin.com/bHraHfX7

Then when building libPJutil here are the flags:

    cd libpjutil
    autoreconf -fiv
    export CXX=icpc
    
    export CPPFLAGS="-pthread -I$LOC/include $INCL -I$LOC/include/blitz"
    export CXXFLAGS="-O2 -pthread"
    export LDFLAGS="-L$LOC/lib $LIBS"
    ./configure --prefix=$LOC --with-boost=$LOC
    make -j$NP
    make install

And here is the output from this: http://pastebin.com/UWPaGPCw

Thanks for taking the time!

Patrik Jonsson

unread,
Apr 22, 2013, 1:48:26 PM4/22/13
to sunri...@googlegroups.com
Late versions of gcc have gotten extremely picky about not allowing things it would let slide previously, so that's probably what's going on. Have you tried using an *older* version of gcc?  That would at least tell whether that is the issue. The sustainable way forward is to fix those issues. It'll be a "useful exercise" to learn more about C++. Right, Chris? ;-P

/Patrik

Robert Thompson

unread,
Apr 22, 2013, 1:55:27 PM4/22/13
to sunri...@googlegroups.com
Late versions of gcc have gotten extremely picky about not allowing things it would let slide previously, so that's probably what's going on. Have you tried using an *older* version of gcc?  That would at least tell whether that is the issue. The sustainable way forward is to fix those issues.
Hey Patrik!  I currently have gcc 4.2.1 and g++ 4.2, are those considered 'newer' versions?  I have not tried older versions as of yet.

-Robert


You received this message because you are subscribed to a topic in the Google Groups "Sunrise" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sunrisemcrx/oK0ZfwjVgKY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to sunrisemcrx...@googlegroups.com.

Robert Thompson

unread,
Apr 27, 2013, 10:32:10 PM4/27/13
to sunri...@googlegroups.com
So I've spent a great deal of time today working on this and have some good and some bad news to report.  First is that I've gotten SUNRISE to compile on a linux cluster that I use frequently (without MPI support so far).  The queuing system however, makes it quite difficult to experiment on smale scale tests.  To that end I am revisiting compiling this on my Mac (8 cores 16gb ram) so I can perform these small scale tests in hopes of understanding how to better run and use the code.  I am using the latest intel compilers from their website (gnu compilers give syntax errors when compiling sunrise itself).  I've gotten each prerequisite compiled without error as well, but near the end of SUNRISE compilation (linking stage I believe) I receive the following:

libtool: link: icpc -D_THREAD_SAFE -ggdb -O3 -pthread -o mcrx monitor.o aux_grid_stage.o aux_particle_stage.o grain_model_factory.o ir_intensity_stage.o ir_stage.o mcrx-extras.o mcrx-extras2.o mcrx-stage.o mcrx.o nonscatter_stage.o scatter_stage.o thick_ir_stage.o -Wl,-bind_at_load  -L. -L/Users/bob/local/sunrise_intel/lib -lboost_thread -L/Users/bob/local/sunrise_intel/tbb -lmcrx -lboost_serialization /Users/bob/local/sunrise_intel/lib/libPJutil.dylib /Users/bob/local/sunrise_intel/lib/libCCfits.dylib -lcfitsio /Users/bob/local/sunrise_intel/lib/libblitz.a -ltbb -pthread
Undefined symbols for architecture x86_64:
 "__ZN4mcrx4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES4_EENS_10dummy_gridEE10set_masterEPNS_10mpi_masterIS9_EE", referenced from:
 __ZN4mcrx5shootINS_4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES5_EENS_10dummy_gridEEENS_18nonscatter_shooterEEEbRT_T0_RKNS_10terminatorERSt6vectorIN6ranlib15MersenneTwister8mt_stateESaISL_EElRlibiiSs in nonscatter_stage.o
  "__ZN4mcrx4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES4_EENS_10dummy_gridEE17set_thread_numberEi", referenced from:  __ZN4mcrx14shooter_threadINS_4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES5_EENS_10dummy_gridEEENS_18nonscatter_shooterEEclEv in nonscatter_stage.o
  "__ZN4mcrx4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES4_EENS_10dummy_gridEE3rngEv", referenced from:     __ZN4mcrx14shooter_threadINS_4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES5_EENS_10dummy_gridEEENS_18nonscatter_shooterEEclEv in nonscatter_stage.o
  "__ZNK4mcrx4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES4_EENS_10dummy_gridEE4taskEv", referenced from:
 __ZN4mcrx5shootINS_4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES5_EENS_10dummy_gridEEENS_18nonscatter_shooterEEEbRT_T0_RKNS_10terminatorERSt6vectorIN6ranlib15MersenneTwister8mt_stateESaISL_EElRlibiiSs in nonscatter_stage.o   __ZN4mcrx14shooter_threadINS_4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES5_EENS_10dummy_gridEEENS_18nonscatter_shooterEEclEv in nonscatter_stage.o
  "__ZNK4mcrx4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES4_EENS_10dummy_gridEE8emissionEv", referenced from:     __ZN4mcrx5shootINS_4xferINS_10dust_modelINS_9scattererINS_30polychromatic_scatterer_policyENS_12local_randomEEENS_19cumulative_samplingES5_EENS_10dummy_gridEEENS_18nonscatter_shooterEEEbRT_T0_RKNS_10terminatorERSt6vectorIN6ranlib15MersenneTwister8mt_stateESaISL_EElRlibiiSs in nonscatter_stage.o
ld: symbol(s) not found for architecture x86_64
make[2]: *** [mcrx] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

Unfortunately I have no idea how to proceed from this point.  I feel as though things are very close to actually working so any help or ideas would be greatly appreciated.  Here is a link to the script I have compiled to build SUNRISE up until this point: http://pastebin.com/pVvRLLFs

Note I am currently neglecting MPI as I'd like to get it compiled first before venturing down that road...and the CUDA road....

-Robert


On Friday, April 19, 2013 4:18:49 PM UTC-7, Robert Thompson wrote:

Patrik Jonsson

unread,
Apr 27, 2013, 10:51:22 PM4/27/13
to sunri...@googlegroups.com
It looks like a 32/64 bit problem (since it says they are undefined *for architecture x86_64*). I vaguely remember something like this from building on my mac. Have you tried explicitly using -m64 (I think that's the option also for icpc) when building everything?

It's hard to read the mangled names for what it's missing. It looks like some xfer methods. Can you pipe that through c++filt and paste the result?

/P.




--

Robert Thompson

unread,
Apr 28, 2013, 12:02:01 AM4/28/13
to sunri...@googlegroups.com
Hi Patrik, thanks for the quick reply.

It looks like a 32/64 bit problem (since it says they are undefined *for architecture x86_64*). I vaguely remember something like this from building on my mac. Have you tried explicitly using -m64 (I think that's the option also for icpc) when building everything?
Yea I assume that's the issue as well.  I tried adding '-m64' along with '-arch x86_64' to CPPFLAGS, CXXFLAGS, and LDFLAGS just to make sure (I reconfigured and recompiled all of the dependancies as well), but it doesn't seem to have made a difference.


It's hard to read the mangled names for what it's missing. It looks like some xfer methods. Can you pipe that through c++filt and paste the result?
I wasn't exactly sure how to pipe it through c++filt so I did each one manually:

########################

"mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>::set_master(mcrx::mpi_master<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid> >*)", referenced from:

bool mcrx::shoot<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>, mcrx::nonscatter_shooter>(mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>&, mcrx::nonscatter_shooter, mcrx::terminator const&, std::vector<ranlib::MersenneTwister::mt_state, std::allocator<ranlib::MersenneTwister::mt_state> >&, long, long&, int, bool, int, int, std::string)
in
nonscatter_stage.o

########################

"crx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>::set_thread_number(int)",referenced from:

mcrx::shooter_thread<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>, mcrx::nonscatter_shooter>::operator()()
in
nonscatter_stage.o

##########################

"mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>::rng()", referenced from:

mcrx::shooter_thread<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>, mcrx::nonscatter_shooter>::operator()()
in
nonscatter_stage.o

###########################

"mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>::task() const",referenced from:

bool mcrx::shoot<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>, mcrx::nonscatter_shooter>(mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>&, mcrx::nonscatter_shooter, mcrx::terminator const&, std::vector<ranlib::MersenneTwister::mt_state, std::allocator<ranlib::MersenneTwister::mt_state> >&, long, long&, int, bool, int, int, std::string)
in
nonscatter_stage.o

mcrx::shooter_thread<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>, mcrx::nonscatter_shooter>::operator()()
in
nonscatter_stage.o

###########################

"mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>::emission() const",referenced from:

bool mcrx::shoot<mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>, mcrx::nonscatter_shooter>(mcrx::xfer<mcrx::dust_model<mcrx::scatterer<mcrx::polychromatic_scatterer_policy, mcrx::local_random>, mcrx::cumulative_sampling, mcrx::local_random>, mcrx::dummy_grid>&, mcrx::nonscatter_shooter, mcrx::terminator const&, std::vector<ranlib::MersenneTwister::mt_state, std::allocator<ranlib::MersenneTwister::mt_state> >&, long, long&, int, bool, int, int, std::string)
in
nonscatter_stage.o

########################

Again thanks for your help!

-Robert



You received this message because you are subscribed to a topic in the Google Groups "Sunrise" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sunrisemcrx/oK0ZfwjVgKY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to sunrisemcrx...@googlegroups.com.

Chris Hayward

unread,
Apr 30, 2013, 9:45:24 AM4/30/13
to sunri...@googlegroups.com
Hi Robert,

I'm glad Patrik has stepped in here, because architecture issues are something that I am not very familiar with. Hopefully he plans to chime in again...

Given that, I'll only offer a pragmatic suggestion: if at all possible, it would be best to use the cluster for the small-scale test runs and not worry about building on your Mac. Is it possible to run interactive jobs on your cluster? This is what I usually do for tests, because it enables me to run numerous small-scale jobs (sequentially) without waiting in the queue. However, if it is not possible to do this, then we'll have to figure out how to get it to compile on your Mac, because we definitely encourage 'playing around' with the code so that you understand it better rather than just jumping into big 'production' runs.

Has anyone on the list (besides Patrik) successfully built Sunrise 4.0 on a Mac? If so, perhaps you could share the details (versions of libraries used and build scripts).

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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--

Patrik Jonsson

unread,
May 1, 2013, 4:14:23 PM5/1/13
to sunri...@googlegroups.com
Nice try, Chris... ;-P

It's hard to do remotely; debugging these kinds of build issues is something you'll need to learn if you are going to be developing software. One thing to do is to learn how to use "nm" and see whether those symbols are actually defined. If not, they aren't being compiled -- try to figure out why. There may be explicit instantiations that miss those functions, for example. It may be that they are missing when some combination of options are used, since in general Sunrise builds fine.  If they are defined, then the linker is rejecting them for some reason, probably a 32/64 mismatch.

cheers,

/Patrik

Robert Thompson

unread,
May 2, 2013, 4:49:09 PM5/2/13
to sunri...@googlegroups.com
I'm stuck in regards to getting it to compile on my mac, there's nothing more I can do on my end with my limited knowledge of C++ and all those nasty linkages.  

I did however install Ubuntu on my machine at home and was able to successfully compile with the intel compilers.  I wanted to try the CUDA implementation and ran into a snag.  I can configure and compile sunrise with the CUDA flags, but upon running it segfaults during the mcrx run, with CUDA disabled the run proceeds as normal.

I have two theories of why this may be:

1) Sunrise is incompatible with CUDA-5.0; I have to use this version because my gtx660ti is not supported under CUDA-4.2 (driver does not recognize the card).
2) the nvcc compiler is a sort of wrapper for g++ (?), which means the dependancies are being compiled with the gnu compiler rather than the intel compiler leading to issues at runtime.

In regards to #1 I have no idea if this is the case or not due to my limited CUDA knowledge.  For #2 I found that in the later versions of CUDA the intel compilers are supported via passing this to nvcc:

nvcc -ccbin /path/to/intel/Compiler/11.1/064/bin/intel64/icc

Unfortunately this did not make a difference for me.  I was hoping you could look into getting the gnu compilers to work when you get the chance; I am hoping it may resolve some of these oddball issues.

-Robert



You received this message because you are subscribed to a topic in the Google Groups "Sunrise" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sunrisemcrx/oK0ZfwjVgKY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to sunrisemcrx...@googlegroups.com.

Patrik Jonsson

unread,
May 2, 2013, 5:41:24 PM5/2/13
to sunri...@googlegroups.com
(1) is quite likely. CUDA is a moving target. You did specify "arch=sm_13"?

Robert Thompson

unread,
May 2, 2013, 5:47:16 PM5/2/13
to sunri...@googlegroups.com
(1) is quite likely. CUDA is a moving target. You did specify "arch=sm_13"?
Sure did.  Everything compiled nicely, mcrx found the right video card but seg faults when it starts trying to use it with no specific errors (I don't have the logs in front of me or I'd say exactly where it does).
Reply all
Reply to author
Forward
0 new messages