Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2008-06-23 15:26:37 python sur core2duo...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

python sur core2duo...



bon voila, en ce moment je travaille avec python et sa bibliothèque de manipulation d'images,
ça marche plutôt pas mal, la bibliothèque en question est trés abordable, python lui même est 'facile', même pour moi qui suit un non programmeur... bref, en fait je remarque que quand mon programme travaille (précision : c'est pas du temps réel) il n'utilise qu'un seul processeur hmm
dommage car ma routine est assez (même trés) simple mais le nombre de pixels sur lesquelles elle travaille est important, donc j'aimerais bien arriver à utiliser ce fameux coreduo pour booster un peu mes rendus...
si quelqu'un dans l'assistance à ce genre d'expérience ?

Hors ligne

 

#2 2008-06-23 15:52:28 Re : python sur core2duo...

22_80
membre
Lieu: Paris
Date d'inscription: 2008-02-29
Messages: 205

Re: python sur core2duo...



Essaye de regarder ça :

http://pypi.python.org/pypi/processing

EDIT : Sinon, regarde du côté de Jython, IronPython ou CPython

Re-EDIT : Yop :

citation :

It might be that you have to set the CPU affinity for your python process so
that it works at all. I had that problem on a dual core machine with
hyperthread enabled. Using taskset
(http://www.linuxcommand.org/man_pages/taskset1.html) helped solving the
problem:

taskset -c <CPU#> python ...

Best regards,
wr

+
+

Dernière modification par 22_80 (2008-06-23 16:02:47)

Hors ligne

 

#3 2008-06-25 16:45:43 Re : python sur core2duo...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: python sur core2duo...



mouerf...
d'aprés ce que je comprends c'est un peu chiant à gérer les threads : faut séparer les taches et synchroniser ce qui doit l'être, en faisant attention que 2 process touchent pas aux mêmes valeurs... bref... pataugeage intense pour moi la ...
en plus, du coup, dépité, j'ai réécris mon programme en c++ et ben celui en python est bien plus rapide... si si ...
avec python j'utilise les lib Image, ImageDraw, ImageColor et en cpp la lib magick++
zarbi² quoi...

si ya pas d'autres idées dans la salle, je vais simplement en rester à jouer avec mon petit python monocœur moi je crois...

Dernière modification par rep (2008-06-25 16:52:42)

Hors ligne

 

#4 2008-06-25 18:13:43 Re : python sur core2duo...

22_80
membre
Lieu: Paris
Date d'inscription: 2008-02-29
Messages: 205

Re: python sur core2duo...



Tu as essayé la commande linux du dernier lien ?

Hors ligne

 

#5 2008-06-25 21:11:25 Re : python sur core2duo...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: python sur core2duo...



oui mais c'est juste pour choisir, ou limiter (si on a plein de procs), sur quel(s) processeur(s) lancer le programme, mais pas pour répartir une tache 'monothread' sur deux cœurs...

Hors ligne

 

#6 2008-06-26 10:30:43 Re : python sur core2duo...

oli44
membre
Lieu: Notre Dame des Landes
Date d'inscription: 2008-04-25
Messages: 585
Site web

Re: python sur core2duo...



Salut rep,

tu pex aussi fairedu threading directement dans Python, il y a un chapitre là-dessus dans le "guide de survie du programmeur python" que je recommande.

++
O.


La route est longue mais la voie est libre

Hors ligne

 

#7 2008-06-26 11:23:13 Re : python sur core2duo...

drjnut
nouveau membre
Date d'inscription: 2008-06-26
Messages: 2

Re: python sur core2duo...



Bonjour tout le monde!!

Je vais essayer d'être concis...

On peut utiliser le module threading de python pour créer des threads python (eux même wrappés dans des threads natifs). Malheureusement, pour faciliter la programmation, l'ami Guido a préféré mettre en place un mutex global (le GIL) garantissant l'atomicité de chacune des instructions. Ce GIL empèche les threads de s'exécuter de manière simultanée (sur deux proc/core distincts) car il doit être verrouillé pour chaque instruction python. Si vous voulez vraiment avoir du code qui tourne en parallèle, il va falloir vous passer du partage de la mémoire (utiliser plusieurs processus ou utiliser la fonction clone de linux).

Personellement, je vais vers du code en D piloté par python. De cette manière, j'ai un code multi-threadé rapide d'un coté et un langage de script puissant pour lier mes différents modules.

Dernière modification par drjnut (2008-06-26 11:24:45)

Hors ligne

 

#8 2008-06-26 11:25:08 Re : python sur core2duo...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: python sur core2duo...



oui c'est ce que je pensais faire au début,
j'aime bien python et l'idée de réaliser un programme multithread directement avec ce langage me branchait bien jusqu'à ce que je m'aperçoive que j'y pipai que dalle...
t'as une expérience avec ça toi ?
et c'est quoi "guide de survie du programmeur python" ? un livre ? parce que je trouve pas la ref ...

Hors ligne

 

#9 2008-06-26 14:54:50 Re : python sur core2duo...

drjnut
nouveau membre
Date d'inscription: 2008-06-26
Messages: 2

Re: python sur core2duo...



Travaillant avec Zope au taf et ayant commencé un framework réseau "à la" twisted en python, je me suis pas mal de fois posé la question du multiproc.
Pour ce qui est de zope, on lance simplement une instance (zeoclient) par proc et une base de donnée (zeoserver). Ce qui prends le plus de temps est effectué sur les zeoclients. Il ne partagent pas de mémoire et sont donc libre de tourner sur leur proc sans avoir à attendre un lock. Le zeoserver lui fédère les accès base de données et gère les conflits.
Pour ce qui est de mon framework, j'ai commencé à implémenter une couche C/D qui me permet de lancer plusieurs interpréteurs python qui partagent leur table de descripteur de fichier, mais pas la mémoire et ont donc des GILs distincts.
Je pense qu'avant tout, il faut réfléchir à la manière dont on peut répartir le calcul en minimisant les interactions et éviter de lancer trop de thread pour améliorer le débit de traitement.

J'espère que cette prose aidera quelqu'un ;-)

Hors ligne

 

#10 2008-06-26 17:37:28 Re : python sur core2duo...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: python sur core2duo...



hé salut drjnut, content de te voir par ici!
nos posts ce sont croisés, en fait mes questions étaient destinées à oli44, mais sans que je le voie t'avais posté avant moi !! big_smile, bref.. pas grave...
en tout cas merci bien de tes clarifications... qui me laissent toutefois perplexes quant au multithreading avec python... en fait j'ai une simple opération à faire (analyse de couleur, dessin d'une ligne) sur un tas de pixels, donc c'est relativement simple et linéaire : 2 boucles imbriquées parcourent l'ensemble de ma trame 2D, j'extraie le couleur, puis je peint... simplissime...... mais alors donc je vois mal comment je pourrais faire pour scinder puis distribuer le process...
est ce qu'un truc comme ça serait envisageable : un thread (donc une boucle) s'occupe des pixels à coordonnées 'pairs' et l'autre des pixels 'impairs' ?
et l'accés à l'image serait géré de façon à ce qu'un process ne puisse pas bosser dessus tant que l'autre n'a pas libéré la ressource...
j'ai bon???

Dernière modification par rep (2008-06-26 17:40:08)

Hors ligne

 

#11 2008-06-26 19:24:08 Re : python sur core2duo...

22_80
membre
Lieu: Paris
Date d'inscription: 2008-02-29
Messages: 205

Re: python sur core2duo...



rep a écrit:

hé salut drjnut, content de te voir par ici!

Je l'ai appellé à la rescousse, je sais qu'il taquine du python ... tongue

Hors ligne

 

#12 2008-07-10 09:47:23 Re : python sur core2duo...

oli44
membre
Lieu: Notre Dame des Landes
Date d'inscription: 2008-04-25
Messages: 585
Site web

Re: python sur core2duo...



Salut rep,

Brad Daily " Python, le guide de survie" chez CampusPress, mais je crois que c'est trop succicnt pour ce que tu veux faire!

++
O.


La route est longue mais la voie est libre

Hors ligne

 

#13 2008-07-10 10:34:38 Re : python sur core2duo...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: python sur core2duo...



humpf j'ai toujours pas trouvé comment multithreader mon code....
j'ai sous la main "python précis et concis" qui est très bien mais trop trop concis smile
donc effectivement je vais peut être me laisser tenter par un de ces ouvrages imprimés, et vendus en magazin, destinés à dévaster la forêt amazoniene...

par contre j'y ai ajouté une petite interface graphique en tkinter dont je suis assez content... (c moche mais fonctionnel)

Dernière modification par rep (2008-07-10 10:36:30)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024