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

Threads & Processus C++ Discussion :

Question sur parallèle le déterminant d'une matrice


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mars 2010
    Messages : 19
    Par défaut Question sur parallèle le déterminant d'une matrice
    Salut les développeurs
    J'ai un petite question concernant la parallélisation du déterminant d'une matrice
    Le programme est:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #include <iostream>
     
    #define SWAP(a,b){temps=a;a=b;b=temps;}
     
    const int MAX = 100;
    int n;
    using namespace std;
    int R[MAX];
    double a[MAX][MAX];
    double determinant(int);
     
    void begin(){
        int i,j;
        cout<<"Entrez la dimension de la matrice "<<endl;
        cin>>n;
        for(i=0;i<n;i++)
        {
            R[i]=i;
            for(j=0;j<n;j++){
                cout<<"Entrez la valeur de a["<<i<<"]["<<j<<"]"<<endl;
                cin>>a[i][j];
            }
        }
    }
     
    int main(){
        begin();
        cout<<"le déterminant de la matrice est: "<<determinant(0) <<endl;
        return 0;
    }
     
    double determinant(int p){
        int i,temps;
        double sum=0;
        if(p==n-2){
            sum=a[n-2][R[n-2]]*a[n-1][R[n-1]]- a[n-2][R[n-1]]*a[n-1][R[n-2]];
        }
        else{
            //Le début de code?
            for(i=p;i<n;i++){
                if(i!=p){
                    SWAP(R[p],R[i]);
                    sum-=a[p][R[p]]* determinant (p+1);
                    SWAP(R[p],R[i]);
                }
                else
                    sum+=a[p][R[p]]* determinant (p+1);
            }
            //La fin de code?
        }
        return sum;
    }
    est-ce que je peut définir la partie parallélisé dans l'anti-slash ??
    Et est-ce que le temps d'exécution sera : tps/p^n, avec le p le nombre de processeur et tps le temps d'exécution dans le cas normal (non parallélisé) ???
    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Bonjour,

    Comme ton code n'est pas indenté, il est très difficile à lire, est-ce que tu pourrais fixer ça ?

    Il y a un obstacle majeur à la parallélisation : les variables globales. Pour deux raisons :
    - premièrement, C'EST MAL
    - deuxièmement, comme R sera partagée entre les threads, ton algorithme sera tout simplement cassé

    Pour ta question sur le temps de calcul, écris l'algorithme, et tu verras après .

Discussions similaires

  1. Déterminant d'une matrice
    Par sarrou dans le forum C
    Réponses: 5
    Dernier message: 28/11/2006, 10h57
  2. Inversion et déterminant d'une matrice
    Par coline dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 23/06/2006, 09h01
  3. Réponses: 3
    Dernier message: 11/06/2006, 12h09
  4. [Matrices] Comment calculer le Déterminant d'une matrice 4x4
    Par cyber_N dans le forum Algorithmes et structures de données
    Réponses: 70
    Dernier message: 19/08/2005, 15h47
  5. [Débutant] Calculer le déterminant d'une matrice
    Par v4np13 dans le forum Mathématiques
    Réponses: 7
    Dernier message: 30/05/2005, 17h24

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