Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/05/2009, à 16:13

Yakamoneye

Vitesse de calcul gfortran

Salut les gens,

Je suis passé sous linux pour effectuer mes calculs en Fortran avec gFortran (avant j'utilisais visual compaq).

Cependant j'ai un problème, les calculs sont a peu près 5 fois plus lents que sous windows sad
Mon PC est un quadri-cores, mais quand je regarde il y a juste un processeur qui fonctionne à seulement 50 %.

Merci d'avance,

Distribution : Ubuntu 8.04

Hors ligne

#2 Le 13/05/2009, à 21:31

Le Farfadet Spatial

Re : Vitesse de calcul gfortran

Salut à tous !

Yakamoneye a écrit :

Cependant j'ai un problème, les calculs sont a peu près 5 fois plus lents que sous windows sad
Mon PC est un quadri-cores, mais quand je regarde il y a juste un processeur qui fonctionne à seulement 50 %.

Bon, c'est un peu difficile à dire, comme ça.

   Premièrement, quelle est ton architecture ? Un quadri-core, certes, mais encore ? Intel (je suppose) ? Quels sont tes objectifs et besoins ? As-tu utilisé une bibliothèque pour le parallélisme (telles que MPI ou OpenMP) ? Peut-être vaut-il mieux t'orienter vers Ifort (disponible gratuitement sous Linux).

   À bientôt.

                                                                                                                                    Le Farfadet Spatial

Hors ligne

#3 Le 13/05/2009, à 22:50

Yakamoneye

Re : Vitesse de calcul gfortran

Bon, c'est un peu difficile à dire, comme ça.

   Premièrement, quelle est ton architecture ? Un quadri-core, certes, mais encore ? Intel (je suppose) ? Quels sont tes objectifs et besoins ? As-tu utilisé une bibliothèque pour le parallélisme (telles que MPI ou OpenMP) ? Peut-être vaut-il mieux t'orienter vers Ifort (disponible gratuitement sous Linux).

   À bientôt.

Non, je n'ai pas utilisé de bibliothèque pour le parallélisme (ca marche bien ca ? Oo).
Mes objectifs sont un calcul le plus rapide possible ^^

Architecture x86_64

A ma grande surprise les processeurs sont des AMDs wink

Merci

Dernière modification par Yakamoneye (Le 13/05/2009, à 22:52)

Hors ligne

#4 Le 14/05/2009, à 00:46

Le Farfadet Spatial

Re : Vitesse de calcul gfortran

Salut à tous !

Yakamoneye a écrit :

Mes objectifs sont un calcul le plus rapide possible

Ne le prend pas mal, mais ça ne veut rien dire : est-ce que tu veux calculer le plus vite possible ta feuille d'impôt ? Où alors il s'agit de calculer les diverses permutations d'une protéine ? Bref, que veux-tu faire ?

A ma grande surprise les processeurs sont des AMDs

Alors, il ne faut surtout pas utiliser Ifort.

Non, je n'ai pas utilisé de bibliothèque pour le parallélisme (ca marche bien ca ? Oo).

Non seulement ça fonctionne très bien, mais en plus c'est le seul moyen de véritablement tirer parti d'une architecture multi-cœur, quel que soit le système d'exploitation.

   En attendant que tu précises un peu ce que tu comptes faire et même si cela fait quelque temps que je ne l'ai pas trop approché, je signale que mes tests montrent que les capacités d'optimisation de Gfortran sont un peu à la traîne. Au contraire, G95 m'a bien convaincu, tant pour la réactivité de son développeur que pour la qualité du code produit.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 14/05/2009, à 00:47)

Hors ligne

#5 Le 14/05/2009, à 15:32

Yakamoneye

Re : Vitesse de calcul gfortran

Merci de tes réponses, je vais préciser un peu.

Je fais des calculs de mécaniques des fluides, donc des calculs de résolutions numériques lourds.

Je dispose de deux quadri-cores, un 4*AMD et un 4*Intel. Pour le moment je n'ai installé Linux que sur le Intel.
OpenMP est-il difficile à utiliser ?

Je vais regarder un peu G95

Merci à toi

Hors ligne

#6 Le 14/05/2009, à 16:31

yannzbig

Re : Vitesse de calcul gfortran

OpenMP est-il difficile à utiliser

Oui, le calcul parallèle (et le calcul haute performance en général) est une discipline à part entière. Il y a souvent des spécialistes pour cela, car OpenMP (ou MPI) permet de repenser complètement un calcul.
Si je te comprends, tu veux juste tirer pleinement parti de ton proc. Malheureusement, c'est ton OS qui gère la répartition du travail au sein du proc (pour tes 4 coeurs).
Autrement dit tu n'as pas vraiment le choix:
-Ou bien tu arrives à "dire" à ton OS que toutes les ressources doivent se concentrer sur ton calcul en cours (sorry je peux pas t'aider)
-Ou bien tu contrôles ça à la mano, en utilisant par exemple OpenMP ou MPI.

Tu peux aussi installer, sur ta machine avec le proc Intel, un compilateur plus performant, comme celui développé par intel, donc spécialement adapté à ton proc. Il est très puissant, et gratuit pour un usage non-commercial sous linux:
http://software.intel.com/en-us/article … -download/

Tu gagneras en performance globale, c'est sûr. Il faudra jeter un coup d'oeil aux options d'optimisations qui fracassent. A titre d'exemple, en C, je gagne 30% sur des gros calculs que je fais au boulot (parallèle ou séquentiel confondus).

#7 Le 14/05/2009, à 17:25

Tom_L

Re : Vitesse de calcul gfortran

Salut,

Je confirme que le compilo Intel marche très bien (en tout cas sur des machines Intel). Les options d'optimisation automatiques (-fast) permettent de paralléliser/vectoriser automatiquement le code.

Plus important encore, le compilo est fourni avec des outils d'analyse, permettant d'identifier les parties critiques du code, et de les modifier en conséquence.

Ca ne vaudra jamais de la parallélisation à la main, mais pour un investissement en temps très faible on obtient des très bon résultats...


~~~~~~
Thomas.

Hors ligne

#8 Le 14/05/2009, à 18:50

Le Farfadet Spatial

Re : Vitesse de calcul gfortran

Salut à tous !

Yakamoneye a écrit :

Je fais des calculs de mécaniques des fluides, donc des calculs de résolutions numériques lourds.

Ça tombe bien, moi aussi (http://www.legos.obs-mip.fr/~lebars/) !

Yakamoneye a écrit :

OpenMP est-il difficile à utiliser ?

OpenMP est globalement plus simple d'utilisation que MPI (cette dernière a plus de souplesse à mon sens). Après, de toute façon, faire du calcul parallèle nécessite de repenser son code : le problème, c'est plus l'algorithmique parallèle que la bibliothèque employée.

yannzbig a écrit :

c'est ton OS qui gère la répartition du travail au sein du proc (pour tes 4 coeurs).

Quel que soit le système d'exploitation, c'est ce dernier qui s'occupe de l'ordonnancement. Par contre, si le code n'est pas parallélisé, il ne s'exécutera que sur un seul cœur, aussi bon soit l'algorithme d'ordonnancement.

   En revanche, un bon compilateur sera capable de réaliser une parallélisation minimale, mais si on veut vraiment exploiter le parallélisme, il faut s'en charger soit-même.

Tom_L a écrit :

Je confirme que le compilo Intel marche très bien

Le compilateur d'Intel permet d'obtenir des performances impressionnantes et est effectivement capable de réaliser une bonne parallélisation automatique. Cependant, il ne fonctionne vraiment que sur les architectures Intel. De plus, malgré les qualités de Ifort, si on veut vraiment tirer parti du parallélisme, il faut penser parallèle dès la phase de codage.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 14/05/2009, à 18:51)

Hors ligne