Salut les développeurs
J'ai un petite question concernant la parallélisation du déterminant d'une matrice
Le programme est:
est-ce que je peut définir la partie parallélisé dans l'anti-slash ??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; }
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
