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:
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