Paralléliser une simple fonction

Viny12 Messages postés 1 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 août 2009 - 11 août 2009 à 16:15
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 - 29 août 2009 à 11:36
Bonjour,

Je suis novice en python et j'aimerais savoir comment paralléliser une simple fonction qui calcule une jacobienne de sorte que le calcul puisse etre lancer sur plusieurs processeurs.

En gros ma fonction ressemble à :
def jacob(f,x)
l=len(x)
for i in range(l)
jacob[i,i]=diff(f,x[i],2)
for j in range(i):
.....
....

Merci,

3 réponses

PythonLin Messages postés 3 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 2 septembre 2009
28 août 2009 à 20:42
Désolé mais tu ne peux pas.
Quand tu exécutes un programme Python, c'est tout le programme qui est exécuté par ton UC. Et c'est le système qui attribue un processeur ou un autre au programme.

Si tu veux faire du calcul distribué, tu dois programmer le découpage de ta tâche en plusieurs étapes et tu fais exécuter chaque étape par un ordi différent. Puis tu rassembles le résultat...
0
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
29 août 2009 à 11:34
Faux pythonlin.

Tu peux, on appèle cela le multithreading, et oui tu peux le faire.

Eg :

import threading

class ThreadClient(threading.Thread):
    def __init__(self,f,x):
        threading.Thread.__init__(self)
        self.f = f
        self.x = x
    def run(self): 
        l=len(self.x)
        for i in range(l)
            jacob[i,i]=diff(self.f,self.x[i],2)
            for j in range(i): 


01001110 00110011 01000001 01110010
By N3Ar
see me @ www.N3Ar.co.cc
0
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
29 août 2009 à 11:36
tu as la fonction là et après tu l'invoque en utilisant :

th = ThreadClient(f,x)#et on initialie le Thread
th.start() 


lance autant de fois ce bout de code, et run() sera lancé autant de fois en paralêle.
0
Rejoignez-nous