IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[multi Proc] cherche conseil!?


Sujet :

Python

  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut [multi Proc] cherche conseil!?
    bonjour, je développe un logiciel de traitement qui fonctionne sur le principe de canaux de traitement.
    Dans la V1 (oui, j'ecris la v2), le logiciel ne contenait qu'un seul canal de traitement.
    Avec l'apparition des dual core,etc... ll me parait important de pouvoir utiliser les nouvelles architectures matériels pour gagner en productivité.
    Mon approche consiste, a pouvoir exécuter un script de traitement (canal) comme s'il était un programme externe a mon interface de contrôle. (contrairement a la v1).
    Je pense que normalement ce script devrait s'exécuter sur le processeur le moins chargé voir disponible!?
    Attention, je parle bien de travailler en multi processeurs, et non en multi threads.
    Cependant, comment récupérer une sortie a la fin du traitement?

    Quelqu'un a t il expérimenté la chose et pourrait il me conseiller!

  2. #2
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Le module multiprocessing t'apportera très certainement des réponses intéressantes.

  3. #3
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Hello,
    Python ne peux pas placer ses threads sur plusieurs processeurs différents a cause du GIL (Global Interpreter Lock), le seul moyen de faire ca, c'est d'avoir plusieurs processus python totalement indépendants les uns des autres

    Enfin si c'est bien de ca que tu parle, car je suis pas sure de bien avoir comprit.

  4. #4
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    c'est bien ce qui me semble, je crois que meme le multiprossecing ne permet pas de répartir la charge sur plusieurs processeur (je crois avoir lu, que c'est une des améliorations majeure de Python3, mais j'en suis pas sur du tout).

    Je vais quand meme tester,
    Je me dirige aussi vers le piste des "popen", cependant il me faudrait pour le coup scinder mon programme en deux programmes distincts (un gérant l'interface et les entrées des flux et un autre gérant les canaux de traitement.)

    seulement, comment faire pour faire communiquer les deux programmes pour que le 2eme puisse envoyer des informations (avancement du traitement) dans l'interface (prog 1). et puis est ce que je peux passer un objet python en argument a un script exécuter via un console (genre : python monscript.py)

  5. #5
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par airod Voir le message
    c'est bien ce qui me semble, je crois que meme le multiprossecing ne permet pas de répartir la charge sur plusieurs processeur (je crois avoir lu, que c'est une des améliorations majeure de Python3, mais j'en suis pas sur du tout).
    Il me semble bien que Guido Van Rossum ne fera rien pour le GIL. Le module multiprocessing a été justement fait pour outrepasser cette limitation. Ce module offre une interface simillaire aux threads, mais se sert de processus à la place de threads. Ca signifie donc que l'OS est libre de répartir ces processus sur différents cores.

    Pour passer des données de l'un à l'autre, tout est inclus dans le même module.

    PS: D'ailleurs, ta signature me fait penser que...
    http://docs.python.org/library/multiprocessing.html
    Deuxième phrase.

  6. #6
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    On a parlé il y a peu ici même du multi processing : http://www.developpez.net/forums/d82...s-recursivite/
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  7. #7
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    hum, ok, j'ai fait mes tests hier soir, et en effet je conclus que le module multiprocessing est sans doute ce qu'il me faut.
    J'ai pécher un comparatif du temps d'exécution entre des threads et des process, et les process correspondent effectivement a ce que je recherche.

    Merci.

  8. #8
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par airod Voir le message
    J'ai pécher un comparatif du temps d'exécution entre des threads et des process, et les process correspondent effectivement a ce que je recherche.
    On fait dire ce qu'on veut aux chiffres L'utilisation de processus ne sera pas toujours bénéfique.

  9. #9
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par Antoine_935 Voir le message
    On fait dire ce qu'on veut aux chiffres L'utilisation de processus ne sera pas toujours bénéfique.
    Sur un système muli processeur, je ne vois pas d'autre solutions que les process. Le thread étant par nature exécuté sur le même processeur que le process parent.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  10. #10
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par DelphiManiac Voir le message
    Le thread étant par nature exécuté sur le même processeur que le process parent.
    Je ne connais aucune spécification qui fixe cette propriété. Un OS pourrait très bien décider de répartir les threads sur les deux processeurs. En tout cas, je ne vois aucune contrainte technique l'en empêchant.

  11. #11
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Il est vrai que "par nature" étais sans doute inapproprié.

    Donc je corrige le tir; Sur les systèmes d'exploitation que je connais et de ce que j'en sais, les theads s'exécutent sur le même processeur que celui du processus parent.

    Maintenant il est fort possible que dans 10 ans, 1 an, 5 ans, l'os dispatche les threads sur les 32 processeurs de notre pc familial.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cherche conseils pour livre HTML, JavaScript et PHP
    Par oodini dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2005, 15h45
  2. cherche conseil pour Anti Virus
    Par StyleXP dans le forum Sécurité
    Réponses: 4
    Dernier message: 15/08/2005, 19h05
  3. cherche conseil sur livre pour jbuilder
    Par med1 dans le forum JBuilder
    Réponses: 3
    Dernier message: 09/06/2004, 13h33
  4. Réponses: 3
    Dernier message: 01/07/2003, 16h04
  5. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo