[pythran] Re: NPB

  • From: Serge GUELTON <serge.guelton@xxxxxxxxxxxxxxxxxxx>
  • To: pythran@xxxxxxxxxxxxx
  • Date: Mon, 03 Dec 2012 18:04:31 +0100 (CET)

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 :-)



Other related posts: