Some good news: accuracy and xrange bugs have been fixed and pushed to the holy trunk. and pythran generated compiles with clang! ----- Mail original ----- De: "Serge GUELTON" <serge.guelton@xxxxxxxxxxxxxxxxxxx> À: pythran@xxxxxxxxxxxxx Envoyé: Dimanche 2 Décembre 2012 15:23:52 Objet: [pythran] Re: NPB Thanks a lot for the hard work ! Concerning xrange: Bad news. Can you provide us with a limited failing example ? Concerning float representation: I guess I know how to handle this Concerning the perf: what are the optimization flag ? Does callgrind points on a particular performance bottleneck ? ----- Mail original ----- De: "Brunet Pierrick" <pierrick.brunet@xxxxxxxxxxxxxxxxxxx> À: pythran@xxxxxxxxxxxxx Envoyé: Samedi 1 Décembre 2012 20:05:07 Objet: [pythran] NPB Hi all, After hours using debug, I finally found issue. Pythran doesn't handle correctly xrange with negative step. Iterators are correctly generated BUT the condition is : __iter1 < xrange.end(). It should be > if we have negative step. It is hard to handle this case as for loop in python doesn't need comparaison. We only use iterators. A solution may be to handle negative step in operator< in xrange_iterator. Doing it, I have nearly the same output with python and pythran. The only difference is : pythran with constant folding : Error is ' 6.13198380961e-11 ' (in this case other result are a little different too...) pythran without constant folding : Error is ' 4.80859796426e-12 ' python and C : Error is 8.881784197e-15 About execution time, we have: pythran with constant folding : 2.92s pythran without constant folding : 2.95s python : 7.08s C : 0.052s I didn't test omp for now. Other comments : We should add a std::cout.precision(12) to have the same output with pythran and python if we print float. print list[100:200] doesn't work with pythran because operator<< is not overload for list_view I think we doesn't correctly print boolean (0 or 1 instead of False or True) Good night :-)