From: Raimar S. <rai...@ui...> - 2012-04-18 13:28:47
|
Dear András, I have made some progress trying to compile the framework with Intel's compiler. The reason why I try is that I have an account at the university's leo3 HPC with Intel processors, and I hope for increased performance. In debug mode, the testsuitePhysics is passed. In release mode, testsuitePhysics is passed except tests 4 and 64, where I get SIGBUS or SIGSEGV depending on the intel compiler version. This happens in cpputils::details::concatenateHelper upon return std::copy(t.begin(),t.end(),iter); Unfortunately my own script also crashes with SIGBUS. Preliminary tests show that the scripts which succeed are indeed faster, though I have to investigate this more systematically. I will also try to find the exact compiler flags which cause the crashes. Best regards Raimar P.S. let me know if you want to experiment with this on teazer, I have a version of gsl compiled with the intel compiler and I can send you the user-config.jam which points to this library. The changes that were necessary to compile the code are in the branch cppqed/raimar/intel. Here is a summary: 1. namespace problems which icpc has for some reasons ======================================================================== 2. Undefined references to some static const members, fixed by e.g. === modified file 'utils/include/impl/BlitzArraySliceIterator.tcc' --- utils/include/impl/BlitzArraySliceIterator.tcc 2011-09-19 11:29:15 +0000 +++ utils/include/impl/BlitzArraySliceIterator.tcc 2012-04-18 11:49:57 +0000 @@ -205,6 +205,9 @@ template<int RANK, typename V> typename IndexerBase<RANK,V>::Idx IndexerBase<RANK,V>::cache_; +template<int RANK, typename V> +const typename IndexerBase<RANK,V>::Helper IndexerBase<RANK,V>::helper_ = IndexerBase<RANK,V>::Helper(); + ======================================================================== 3. Here I am not sure why gcc compiles the code, as the constructor which is called is missing: === modified file 'elements/frees/MultiLevel.h' --- elements/frees/MultiLevel.h 2011-08-11 13:21:25 +0000 +++ elements/frees/MultiLevel.h 2012-04-18 11:49:57 +0000 @@ -316,7 +316,7 @@ // here, the compiler cannot deduce NL // anymore const VP& etas, const VL& gammas, - const Averaged& averaged=multilevel::DiagonalDO(NL)) + const Averaged& averaged=multilevel::DiagonalDO("",NL)) { return RETURN_type(new PumpedLossyMultiLevelSch<NL,VP,VL,Averaged>(deltas,etas,gammas,averaged)); } @@ -325,7 +325,7 @@ template<int NL, typename VP, typename VL, typename Averaged> inline RETURN_type -makePumpedLossyMultiLevelSch(const multilevel::ParsPumpedLossy<NL,VP,VL>& p, const Averaged& averaged=multilevel::DiagonalDO(NL)) +makePumpedLossyMultiLevelSch(const multilevel::ParsPumpedLossy<NL,VP,VL>& p, const Averaged& averaged=multilevel::DiagonalDO("",NL)) { return RETURN_type(new PumpedLossyMultiLevelSch<NL,VP,VL,Averaged>(p.deltas,p.etas,p.gammas,averaged)); } ========================================================================= 4. Here I have no clue what is going on, adding the public keyword to a struct should not make any difference. But icpc complains with "... is inaccessible" without it. === modified file 'elements/interactions/impl/MLJC.tcc' --- elements/interactions/impl/MLJC.tcc 2011-10-07 23:10:35 +0000 +++ elements/interactions/impl/MLJC.tcc 2012-04-18 11:49:57 +0000 @@ -23,6 +23,7 @@ template<int NL, typename VC> template<int N1, int N2> struct Base<NL,VC>::ModeDynamics : public tmptools::pair_c<N1,N2> { +public: ModeDynamics(const MultiLevelBase<NL>& ml, const ModeBase& mode, const dcomp& g) : a (-g*mode::aop(&mode)), adagger((g*mode::aop(&mode)).dagger()) |
From: Raimar S. <rai...@ui...> - 2012-09-20 10:12:25
|
Dear András, I replaced the branch raimar/intel with a new one, with these changes the framework compiles with Intel's compiler version 12.1. It also passes the physics testsuite (I used test.py with bitmask 127 and evalFew.sh reported all true, is there a more thorough testsuite?). Best regards Raimar |
From: Andras V. <and...@ui...> - 2012-09-21 15:38:36
|
Dear Raimar, Thanks, I'll have a look at these changes. The smartPointerization/ branch is almost ready for merging, if you feel like trying it, your comments are welcome. Best regards, András On Thu, Sep 20, 2012 at 12:11 PM, Raimar Sandner <rai...@ui...> wrote: > Dear András, > > I replaced the branch raimar/intel with a new one, with these changes the > framework compiles with Intel's compiler version 12.1. It also passes the > physics testsuite (I used test.py with bitmask 127 and evalFew.sh reported all > true, is there a more thorough testsuite?). > > Best regards > Raimar > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://ad.doubleclick.net/clk;258768047;13503038;j? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Cppqed-support mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppqed-support |