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

API, COM et SDKs Delphi Discussion :

SetThreadAffinityMask pour un quad


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut SetThreadAffinityMask pour un quad
    Salut à tous;

    Souhaitant utilser au maximum les cores avec chaque thread, j'emploie la fonction SetThreadAffinityMask et donc j'ai suivi cette discution https://forums.codegear.com/message....essageID=36081 .
    Une question reste: par exemple pour un quad faut-il utiliser un masque spécifique à chaque thread (dans le constructeur par exemple) du style ThreadAffinityMask=1 pour le thread 1 (00000001) , 2 pour le deuxième (00000010), 4 pour le troisième(00000100) et 8 (00001000)pour le quatrième ou alors utilser un masque de 15 (00001111) pour tous.Et quelle est la différence entre ces 2 approches car avec mon dual core l'occupation proc est la même quand j'utilise un thread par proc (ThreadAffinityMask sur 1 et 2) ou ThreadAffinityMask sur 3 (00000011).Merci

    Salutations.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Par défaut
    Si tu veux utiliser au maximum les performances de ton processeur, ne fait juste rien. Windows est assez intelligent pour dispatcher automatiquement les threads sur les cores qui vont bien sans que tu aies besoin de faire quelque chose. Sinon, d'après MSDN tu dois fournir un "vecteur de bits", c'est à dire un nombre dans lequel les bits à 1 représentent les numéros de coeur ou le thread est autorisé à être assigné.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut
    Salut Reisubar;

    En fait mon idée vient de ce tuto: http://vincentlaine.developpez.com/t...el-extensions/ ; où il laisse entendre que si on assigne pas
    un proc à chaque thread il se pourrait qu'on ai 8 procs et que chacun n'utilise
    pas chaque thread au maximum (citation> > "Quoi de plus frustant que de voire votre programme "freezer" parce qu'il utilise 100% d'un processeur alors que les 7 autres sont à 10 % ? ") , vu qu'il n'y a pas encore de biblio parallele avec delphi (j'exclu .net avec la Parallel FX Library) je pensais que pour être certain d'avoir 100% pour chaque thread il était préférable de leur assigner un proc particulier.J'ai remarqué que par défaut SetThreadAffinityMask retourne l'ancienne valeur au changement , donc 3 (00000011) dans le cas d'un dual core et sûrement 15 (00001111) sur un quad.Ce que je voulais éviter (et ce que laisse entendre l'article) c'est que windows n'assigne qu'un seul proc à mon appli.(citation> "Potentiellement nous sommes donc revenu au cas où nous n'avions qu'un seul processeur ! ") mais peut être que j'ai mal compris l'article et que si on ne fait rien tourner d'autre il utilisera 100% de chaque proc pour chaque thread.

    Salutations.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/06/2014, 16h08
  2. [PC portable] Dual Core ou Quad Core pour un ordi portable ?
    Par Faiche dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 20/05/2010, 10h58
  3. quel os pour phenom quad core 64 bit
    Par goomie dans le forum Windows Vista
    Réponses: 3
    Dernier message: 19/04/2008, 11h11
  4. Réponses: 12
    Dernier message: 07/08/2006, 09h30

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