Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/03/2012, à 00:04

cbrunos

Qui est familier avec Cython?

Salut à la communauté!

J'ai eu envie d'avoir des retours d'expériences sur Cython, alors je m'adresse à vous chers Ubunteros. J'aurais pu ouvrir ce topic dans la section programmation du forum, mais je veux simplement des témoignages, rien de technique, je me suis donc dit que ça serait plus sympa dans le café, en espérant que des développeurs passent par ici. Pour ceux qui ne connaissent pas Cython, il s'agit d'une implémentation de C en Python qui reste pratiquement aussi simple que le Python, et pratiquement aussi rapide que le C. Par exemple, la bonne vieille fonction fibonacci en Python, c'est ça:

def fibo(t):
    if t == 0:
        return 0
    elif t == 1:
        return 1
    else:
        return fibo(t-1) + fibo(t-2)

et en Cython, c'est ça:

cimport cython
cdef int t

def cfibo(int t):
    if t == 0:
        return 0
    elif t == 1:
        return 1
    else:
        return cfibo(t-1) + cfibo(t-2)

Comme vous le voyez, c'est pratiquement pareil. La différence vient lors de l’exécution: le script python, on l'importe et on s'en sert:

from fibonacci import fib
fibo(5)
>55

alors que la version Cython, il faut d'abord la compiler, et puis on peut l'importer et l'utiliser de la même façon. Seulement que c'est BEAUCOUP plus rapide. Par exemple, avec la version Python:

%timeit -n4 -r3 fibonacci.fibo(30)
4 loops, best of 3: 427 ms per loop

et la même chose en Cython:

%timeit -n4 -r3 cfibo.cfibo(30)
4 loops, best of 3: 191 ms per loop

Beaucoup plus rapide. Alors là, vous allez me dire que la version Python, ça met que quelques milisecondes, et la version Cython, quelques milisecondes en moins, oui, mais sur des exemples plus gros, le gain de temps reste énorme, de l'ordre des 100 à 1000 fois plus rapide.

Cython m'intéresse énormément pour ce que je fais, à savoir l'estimation de modèles macro-économétriques, (en gros, de la résolution de système linéaires, ou non-linéaires en environnement stochastique) et je pense que pas mal de vous qui ont besoin de calcul scientifique pour leurs boulots connaissent Cython, ou seraient intéressés.

Quelqu'un parmi vous utilise-t-il Cython de manière journalière? Quelles exemples pourriez-vous donner?

Note aux modos: Si vous estimez que ce topic serait plus approprié ailleurs, n'hésitez pas à déplacer! Merci!

Dernière modification par cbrunos (Le 15/03/2012, à 00:05)


Je recommande pcubuntoo!

Hors ligne

#2 Le 15/03/2012, à 10:22

kamui57

Re : Qui est familier avec Cython?

Merci pour ce post, je ne connaissais pas smile


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne