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

C Discussion :

strip mining de boucles en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut strip mining de boucles en C
    Bonsoir


    Je voudrais faire du strip mining de boucle en C pour optimiser un programme
    J'ai trouvé des exemples en fortran mais je comprend pas la syntaxe.
    Donc j aurai besoin d un exemple de strip mining en C pour bien comprendr e le principe de la chose
    donc comment "strip miner" ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i=0;i<100;i++) {
          for (j=0;j<1000;j++) {
                                                instruction 1
                                                instruction 2
          }
    }

  2. #2
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    strip mining? Déshabiller un mineur? Pas illégal ça?

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut ouch
    plutot oui..

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    strip mining? Déshabiller un mineur? Pas illégal ça?
    Hehe, il va falloir travailler l'anglais. Le strip mining est une methode d'optimisation des boucles, qui n'apporte rien sauf dans des cas particuliers (parallelisation de la boucle interne). Le principe est ultra-simple: au lieu de faire toutes les iterations dans la boucle externe, on ajoute une boucle interne qui fait une partie des iterations seulement, et la boucle externe itere sur ces parties (strips). Evidemment, cela n'a d'interet que si on peut paralleliser les boucles internes, i.e. les faire s'executer en meme temps.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par da noob Voir le message
    Bonsoir


    Je voudrais faire du strip mining de boucle en C pour optimiser un programme
    J'ai trouvé des exemples en fortran mais je comprend pas la syntaxe.
    Donc j aurai besoin d un exemple de strip mining en C pour bien comprendr e le principe de la chose
    donc comment "strip miner" ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i=0;i<100;i++) {
          for (j=0;j<1000;j++) {
                                                instruction 1
                                                instruction 2
          }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0;i<100000;i++) {
                                                instruction 1
                                                instruction 2
    }
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0;i<100000;i++) {
                                                instruction 1
                                                instruction 2
    }
    Mouais, ça c'est si on utilise pas i et j dans la boucle

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gruik Voir le message
    Mouais, ça c'est si on utilise pas i et j dans la boucle
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    j'ai cru lire (je retrouve plus la source) que les compilos récents (genre gcc) font chaque fois que c'est possible, prefetch + strip-mining lors des boucles.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    et dans mon cas je veux utiliser i et j dans la boucle

    en gros traiter un nombre déterminé d elements dans ma matrice,pour ajuster au mieux la tailles du paquet aux capacité du processeur.
    Mais comme je suis une queue en algo j arrive pas à pondre un code potable...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. [langage] if et boucle { ..}
    Par kacedda dans le forum Langage
    Réponses: 15
    Dernier message: 28/04/2003, 17h25
  3. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 10h47
  4. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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