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

Lazarus Pascal Discussion :

Multi-threads sur processeur multi-coeurs : option de compilation ?


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut Multi-threads sur processeur multi-coeurs : option de compilation ?
    Bonjour à toutes et à tous,

    Quand on a un microprocesseur mono-cœur, l'utilisation de threads se traduit par du partage de temps entre les différents threads.

    Lorsqu'on dispose d'un microprocesseur à plusieurs cœurs (cas de celui du Raspberry Pi 3B+ : 4 cœurs), est-ce que l'architecture des programmes réalisés à partir de Lazarus utilise ces différents cœurs ? Y a-t-il des options de compilation spécifiques à cela ?

    Cordialement.

    Pierre

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 452
    Par défaut
    Bonjour,

    Lorsqu'on dispose d'un microprocesseur à plusieurs cœurs (cas de celui du Raspberry Pi 3B+ : 4 cœurs), est-ce que l'architecture des programmes réalisés à partir de Lazarus utilise ces différents cœurs ? Y a-t-il des options de compilation spécifiques à cela ?
    Cette répartition ne dépend pas du langage mais du système d'exploitation qui va normalement répartir l'ensemble des thread sur les processeurs disponibles
    Sur un Raspberry comme c'est normalement du Linux c'est transparent mais tu peux aussi le définir via taskset https://manpages.debian.org/jessie/m...kset.1.fr.html

    Cordialement

  3. #3
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Merci "acaumes" pour ces précisions.
    A l'aide du "man" que tu me donnes en lien, j'ai réussi à obtenir le PID de mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pi        1271 29.6  3.6  65196 35028 ?        Sl   09:22   0:02 /home/pi/Projets_Lazarus/GPS_Nav/gps_nav
    et de la liste des affinités processeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pi@raspberrypi:~ $ taskset -c -p 1271
    pid 1271's current affinity list: 0-3
    Ce qui suit correspond à mon programme dans lequel je n'ai pas lancé le thread secondaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pid 1271's current affinity mask: f
    pid 1272's current affinity mask: f
    pid 1273's current affinity mask: f
    Ce qui suit correspond à mon programme dans lequel le thread secondaire est lancé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    pi@raspberrypi:~ $ taskset -a -p 1271
    pid 1271's current affinity mask: f
    pid 1272's current affinity mask: f
    pid 1273's current affinity mask: f
    pid 1297's current affinity mask: f

    Ce qui suit correspond à mon programme dans lequel le thread secondaire a été stoppé ; on retrouve les mêmes informations qu'avant lancement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pi@raspberrypi:~ $ taskset -a -p 1271
    pid 1271's current affinity mask: f
    pid 1272's current affinity mask: f
    pid 1273's current affinity mask: f
    Qu'est-ce j'en tire comme information ?

    - différents PID ?
    - mask: f ?
    - list: 0-3 ? utilise les cœurs 0 à 3, c'est-à-dire les 4 cœurs ?

    Cordialement.

    Pierre

Discussions similaires

  1. Multi threading sur processeur mono coeur
    Par benjaminblazer dans le forum Programmation parallèle, calcul scientifique et de haute performance (HPC)
    Réponses: 0
    Dernier message: 22/12/2016, 12h36
  2. Thread sur d'autres coeurs
    Par Rezate dans le forum Threads & Processus
    Réponses: 3
    Dernier message: 28/04/2016, 17h36
  3. Équilibrage de threads sur machine multi-coeur
    Par le Benco dans le forum Linux
    Réponses: 1
    Dernier message: 25/05/2010, 13h31
  4. multi threading sur multi coeurs
    Par Pocus dans le forum Langage
    Réponses: 8
    Dernier message: 26/03/2010, 11h43
  5. Réponses: 2
    Dernier message: 15/05/2004, 18h33

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