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

Free Pascal Discussion :

[Mac OS 10.4] Utilisation de threads pour un Core2Duo


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut [Mac OS 10.4] Utilisation de threads pour un Core2Duo
    Bonjour,

    Je suis chercheur "post-doc" et je développe des programmes de simulation en Pascal. J'utilise maintenant une machine avec un Intel Core2Duo, et je cherche à "multi-threader" mon programme, histoire de gagner du temps.

    Pour faire très simple, j'ai par exemple cet algorithme (p et q sont globales):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure boucle;
    var i: integer;
    begin
      p:=0;
      for i := 1 to 1000 do p:=p+1;
    end;
    Et en fait je voudrais avoir cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    {thread 1 sur le premier core}
    procedure boucle_1;
    var i: integer;
    begin
      p:=0;
      for i := 1 to 500 do p:=p+1;
    end;
     
    {thread 2 sur le second core}
    procedure boucle_2;
    var i: integer;
    begin
      q:=0;	
      for i := 501 to 1000 do q:=q+1;
    end;
     
    {synthèse sur le thread 1 qd les 2 boucles sont finies}
    procedure somme;
    var s: integer;
      s:= p+q;
    end;
    Je sais que les deux façons de faire ne donnent pas la même chose, c'est juste pour comprendre comment gérer les threads sur des algorithmes parallélisables et ensuite synthétiser les résultats.

    Je n'ai pas trouvé de tutoriaux ou d'explications vraiment intuitives pour faire ce genre de truc. Est-ce possible en Pascal ou dois-je utiliser du C ou du C++ ??

    Je suis sous Mac OS 10.4, avec FPC, mon CPU est un Intel C2D 2,33. Idéalement à terme j'aimerais mettre plusieurs machines en réseaux et distribuer les calculs, mais je commence en local sur les 2 coeurs! J'avais parlé à un ingenieur Apple lors de l'Apple Expo et il m'avait dit de passer à Objective C....

    Votre aide serait super appréciée - merci !!
    Guillaume

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Hum, je ne connais pas assez Mac OS X (pour ne pas dire pas du tout ) pour savoir comment outrepasser la gestion du multithread par défaut du système.

    Tout ce que je peux te dire est que tu dois utiliser l'unité CThreads.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

Discussions similaires

  1. Utilisation des threads pour les sockets
    Par Leaffy dans le forum Tcl/Tk
    Réponses: 7
    Dernier message: 23/08/2012, 09h52
  2. Réponses: 6
    Dernier message: 25/01/2012, 21h11
  3. Utiliser les threads pour créer une fenêtre de LOG ?
    Par davidmarli dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2011, 15h01
  4. Obligé d'utiliser les threads pour faire un timer ?
    Par theclem35 dans le forum Débuter
    Réponses: 5
    Dernier message: 31/03/2011, 20h25
  5. Utiliser les threads pour les traitements long
    Par rach375 dans le forum Websphere
    Réponses: 3
    Dernier message: 14/11/2006, 12h08

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