[pythran] Re: Installation problem from NT2

  • From: MBR MBR <mbr.joos@xxxxxxxxx>
  • To: pythran@xxxxxxxxxxxxx
  • Date: Wed, 20 May 2015 15:30:48 +0200

Sure, there are actually small tests, just to try to understand how Pythran
works and the performance I could get out of it. You can find the sources
and see, for the two small problems I tried (a Pi computation (in
Optimization.*) and a Jacobi iteration solver (in the hands-on session))
how it compares to other methods (Cython, Ctypes, F2Py, and Numba).
Spoiler: it's quite good (for the Jacobi solver, it's the best I got).

As for troubles, I encountered a 'stochastic' compilation: sometimes it
compiles, sometimes not. When it fails, I have this kind of error message:

CRITICAL: Leave the vessel! Women and children first!
C++ compiler failed to compile translated code.
E: Compile error!

******** Command line was: ********
'c++' '/tmp/tmpQWE_uU.cpp'
'-fno-math-errno' '-std=c++11' '-O2' '-fopenmp' '-shared' '-o'
'heat_pythran.so' '-L/local/home/mjoos/soft/anaconda/lib/python2.7/config'
'-lpthread' '-ldl' '-lutil' '-lpython2.7' '-lboost_python' '-lgmp'
'-lgmpxx' '-fPIC'

******** Output : ********

/tmp/tmpQWE_uU.cpp: In instantiation of ‘typename
argument_type1, argument_type2, argument_type3,
argument_type0&, argument_type1&&, const argument_type2&, const
argument_type3&, const argument_type4&) const [with argument_type0 =
pythonic::types::numpy_texpr<pythonic::types::ndarray<double, 2ul> >;
argument_type1 = pythonic::types::ndarray<double, 2ul>&; argument_type2 =
long int; argument_type3 = long int; argument_type4 = long int; typename
argument_type1, argument_type2, argument_type3,
argument_type4>::result_type = pythonic::types::ndarray<double, 2ul>]’:
/tmp/tmpQWE_uU.cpp:200:72: required from here
/tmp/tmpQWE_uU.cpp:167:10: erreur: use of deleted function
‘pythonic::types::numpy_texpr<pythonic::types::ndarray<double, 2ul> >&
pythonic::types::numpy_texpr<pythonic::types::ndarray<double, 2ul>

pythonic::types::numpy_texpr<pythonic::types::ndarray<double, 2ul> >&)’
a_ = pythonic::__dispatch__::proxy::copy{}(anew_);

My configuration is still the same. If you have any idea where it comes
from, and how I could solve it, I'm all ears!

Thanks again,

On Tue, May 19, 2015 at 10:16 PM, serge guelton <sguelton@xxxxxxxxxxxxx>

On Tue, May 19, 2015 at 09:55:49PM +0200, MBR MBR wrote:
Hi Serge,

Thanks for the tips! I tried both, and both actually worked to install

I then had some conflict between libraries and all my gccs (the one of my
system, the one I installed with Modules, and the one coming from
and Pythran failed to find OpenMP. I then reinstall Pythran "by hand"
my latest install of gcc (a 4.9.2). Not sure it was necessary, but at
it is consistent... And then, if I Pythranize my piece of code with this
version, it seems to work fine!

Thanks again for the help!


Glad we worked through this that fast. How unusual ;-)

I'll be happy to have a look to the piece of code you're trying to
optimize, and add it to our validation suite if that's ok with you?



Other related posts: