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

Fortran Discussion :

Calcul parallèle sur dual core


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut Calcul parallèle sur dual core
    Bonjour,

    Je me pose une question un peu naïve (?) : comme faire tourner un programme qui utilise les deux processeurs ? Typiquement, j'ai un calcul de fonction de corrélation à faire : je pourrais bien faire la moitié sur un coeur et l'autre moitié sur l'autre coeur, mais je ne sais pas par quel bout prendre ce problème... existe-t-il des tutoriaux sur le sujet ? (compréhensibles : j'ai un peu tourné sur le net mais trouvé que des trucs bien compliqués et pour des archi multiproc, ce qui n'est pas mon cas...

    Merci beaucoup

    Hugi

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    alors si tu veux un truc assez simple (quoique) pour faire du calcul parallèle y a OpenMP
    tu peux trouver des cours là: http://www.idris.fr/data/cours/paral...choix_doc.html

    sinon y a aussi MPI qui est un peux plus complique et surtout pour archi multiproc ( c.f. http://www.idris.fr/data/cours/paral...choix_doc.html )

    il faut d'abord se poser la question: mémoire partagée ou memoire divisée en gros sur une machine seule mais multi core tu es dans le premier cas OpenMP est bien adaptée et simple pour faire cela

    je n'ai pas trop de doc pour l'inclure dans le compilo, je sais que gfortran dans ses dernière version l'inclu, mais il faut bien installer les librairies... ifort l'inclu parfaitement, les autres, bin je sais pas trop...

  3. #3
    Membre confirmé Avatar de Fortran90
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 83
    Par défaut
    Salut

    Le plus rapide pour ton petit dual core sera d'introduire des pragmas OpenMP au dessus des boucles les plus consommatrices.

    Tu n'auras pas besoin de repenser la structure de tes données comme il le faudrait en MPI pour communiquer les datas quand tu en as besoin.

    Il faudra juste être prudent aux variables privées/publiques, les "race conditions" et les petites réductions si nécessaires. Sinon tu peux te retrouver avec un programme qui met plus de temps qu'à un processeur!

    Dans la pratique il faut voir avec le compilateur que tu utilises/souhaites utiliser. Si ton application n'est pas à but lucratif tu peux t'orienter vers le compilateur intel qui est gratuit sur Linux. Il te suffirait d'ajouter -openmp à la ligne de compilation pour "enabler" les pragmas openMP

    Pour la documentation il y a moultes ressources sur le net. Google openMP et tu auras le choix !

    Bon courage

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut
    Bonjour,

    Un grand merci pour vos réponses .
    De fait, j'utilise la version gratuite d'ifort. rajouter -openmp suffira-t-il pour activer les parties openmp du code, ou bien faut-il installer open mp (je veux dire, est-ce que ifort le contient par défaut ?) ?

    Encore merci !!!

    Hugo

  5. #5
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    ça c'est une bonne question, déjà, cela dépend de la version d'ifort (win ou linux) mais je sais que moi j'ai eu des soucis d'optimisation car il manquais quelques librairies à installer, le mieux est de tenté une compilation, voit les erreurs eventuelles et cherche les libs qu'il te réclame!

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut
    Ok, merci de ta réponse - pleine de bon sens !! -, j'ai la version linux pour ma part.

    Hugo

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/02/2012, 22h35
  2. Calculs en parallèle sur 2 postes
    Par salna dans le forum Général Java
    Réponses: 3
    Dernier message: 19/06/2010, 18h45
  3. Travail sur Dual Core
    Par french_aspi dans le forum MATLAB
    Réponses: 7
    Dernier message: 19/08/2008, 08h23
  4. Réponses: 3
    Dernier message: 22/09/2007, 20h08
  5. Réponses: 5
    Dernier message: 14/04/2007, 14h12

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