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 :

Afinité des processus


Sujet :

Python

  1. #1
    Membre actif
    Avatar de Grumphette
    Homme Profil pro
    Validation manager
    Inscrit en
    Juillet 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Validation manager

    Informations forums :
    Inscription : Juillet 2008
    Messages : 81
    Par défaut Afinité des processus
    Bonjour à tous,

    Je suis en train de dev en python, et je me retrouve face à une indécidabilité. Je voudrais contrôler l'affinité des processus que je crée et lance avec la lib "multiprocessing". Y a t'il un moyen avec la lib standard ? sinon j'ai ma solution had-oc mais j'aurais voulu savoir si il était possible sans avoir à se faire des nœuds au cerveau. Il y aurai bien https://pypi.python.org/pypi/affinity/0.1.0 mais est ce considéré comme standard?

    Grumphette.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Par défaut
    Salut,

    Je n'ai pas de solution toute faite mais :

    J'ai télécharger le module Affinity pour voir, Déjà sur la doc ils disent que c'est compatible python 2 (c'est pas terrible) je pense pas python 3 .
    Aussi -> works on windows (requires pywin32) and linux (kernel 2.6 or patched 2.4).
    Ce module à été posté en 2006, et depuis plus rien.
    En fait ce module utilise un fichier C pour gérer l'affinity, le python est juste un wrapper, du coup je pense que c'est utilisable, mais tu va devoir mettre les mains dans le cambouis. Je te conseil de chercher une solution alternative parce que ça peut-être beaucoup de taf à maintenir/ mètre a niveau.

    En cherchant brièvement je suis tombé sur ça -> os.sched_setaffinity(pid, mask) https://docs.python.org/dev/library/...ed_setaffinity

    En espérant que ça t'aide un peu

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 696
    Par défaut
    Salut,

    Citation Envoyé par Grumphette Voir le message
    Je voudrais contrôler l'affinité des processus que je crée et lance avec la lib "multiprocessing". Y a t'il un moyen avec la lib standard ? sinon j'ai ma solution had-oc mais j'aurais voulu savoir si il était possible sans avoir à se faire des nœuds au cerveau. Il y aurai bien https://pypi.python.org/pypi/affinity/0.1.0 mais est ce considéré comme standard
    S'il y avait un moyen avec la lib standard, ce serait dans la documentation....
    Installer une extension telle que affinity est une méthode "standard" pour ajouter à Python des fonctionnalités qu'il n'a pas. Ceci dit, comme ceux qui ont pondu çà ont eu la mauvaise idée de le coder en C, il va falloir "compiler" - ce qui n'est pas toujours aisé -.

    Mais, j'aimerai bien savoir quelles sont les caractéristiques du profil de charge de votre application qui vous font penser que jouer avec cette fonctionnalité pourrait être bénéfique....

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre actif
    Avatar de Grumphette
    Homme Profil pro
    Validation manager
    Inscrit en
    Juillet 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Validation manager

    Informations forums :
    Inscription : Juillet 2008
    Messages : 81
    Par défaut
    @PreferCSharp : merci, j'étais passé à coté. J'ai pas mal utilisé sched[get|set]affinity en C, donc je trouvais ça un peu louche que python n'ai pas de wrapper "standard" (je défini standard comme étant fourni de base, sans avoir recourir à pip ou easy_install).
    @wiztricks : Je veux appliquer une charge incrémental sur une machine pour stresser de plus en plus le processeur. Je ne veux pas que le processeurs migre par lui même la charge car je veux que chaque cœur soit stressé pour voir jusqu’à où il sature. Simple méchanisme de mesure de perf, fixer tous les paramètres pour éviter qu'un comportement non prédictible fausse la mesure.

    Au final j'avais fait un "hack" en utilisant numactl. Mais je vais voir pour utiliser os.sched plutôt

    Grumphette.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 696
    Par défaut
    Salut,

    Citation Envoyé par Grumphette Voir le message
    Au final j'avais fait un "hack" en utilisant numactl. Mais je vais voir pour utiliser os.sched plutôt
    Sur les CPU modernes, numactl devrait être plus approprié car os.shed se fout pas mal de la hiérarchie mémoire qui est assez importante lorsqu'on regarde les choses à la loupe.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. [C#] Configuration du niveau de priorite des processus
    Par stephdiplo150 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/04/2007, 23h29
  2. faire un petit menu qui lance des processus
    Par tomsoyer dans le forum Linux
    Réponses: 4
    Dernier message: 30/11/2004, 18h37
  3. lancer des processus
    Par dylan dans le forum Général Python
    Réponses: 2
    Dernier message: 10/06/2004, 14h02
  4. [langage] fonctionnement des Processus
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 11h12
  5. Réponses: 2
    Dernier message: 04/10/2002, 09h13

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