• [^] # Re: show me the code

    Posté par . En réponse au journal Pythran 0.2 : Python peut-il être aussi rapide que du C ?. Évalué à 10.

    Merci!

    Un "détail" me saute aux yeux en comparant les sources C et Python. Je suis surpris que tu compares les performances entre un code en python avec OpenMP vs un code en C sans OpenMP.

    Je viens de co la branche compas2013 pour faire des tests, malheureusement je n'arrive pas à lancer pythran sur ma machine, l'erreur semble venir de pythonic++ ou de mon compilateur (gentoo 4.6.3)

    By Jove! Your environment does not seem to provide all what we need
    E: [Errno 65] pythonic++ not found, try to add -I or -L flags?
    ~/pythran/scripts/../pythran/pythonic++/core/utils.h:77:48: désolé, pas implanté: cannot expand ‘Types ...’ into a fixed-length argument list
    
    

    Du coup, en testant uniquement la version C

    AVANT (sans OpenMP)

    gcc -O2 hyantes.c -lm -o hyantes1
    time ./hyantes 'Rhone-alpesXYLongLat_pop.txt' 1.1 32 4 35 0.01 40 > avant
    real 1m13.791s
    user 1m13.753s
    sys 0m0.003s
    
    

    APRES (avec OpenMP)

    <emacs> / <vim> hyantes.c + un coup de #pragma omp parallel
    gcc -O2 hyantes.c -fopenmp -lm -o hyantes2
    time ./hyantes 'Rhone-alpesXYLongLat_pop.txt' 1.1 32 4 35 0.01 40 > apres
    real 0m9.100s
    user 1m43.181s
    sys 0m0.008s
    
    

    N'étant pas une bête avec OpenMP, je préfère vérifier.

    diff avant apres
    echo $?
    0
    
    

    Conclusion un temps d’exécution divisé par 8 (CPU i7-3930K).

    Je n'ai pas pu comparer avec pythran, mais j'ai comme l'impression que :
    - pythran avec OpenMP est aussi rapide que le code en C sans OpenMP
    - le code en C avec OpenMP est 8x plus rapide que pythran avec OpenMP.