Changeset 2537 in Sophya for trunk/Eval/Speed/cpupower.c
- Timestamp:
- May 18, 2004, 10:59:19 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Eval/Speed/cpupower.c
r2534 r2537 10 10 /* --------------------------------------------------- */ 11 11 /* --- Petit programme d'estimation de la puissance CPU */ 12 /* Compilation: csh> cc -O3 -o cpupower cpupower.c 12 /* Compilation: csh> cc -O3 -o cpupower cpupower.c -lm */ 13 13 /* R. Ansari - LAL Mai 2004 */ 14 14 /* --------------------------------------------------- */ … … 19 19 static int SZ; /* Taille de tableau */ 20 20 static double N_OP; /* Nb operations */ 21 static int OPE; /* Choix Operation fop_1 ou fop_2*/21 static int OPE; /* Choix Operation fop_1/2/3/4 */ 22 22 static int ckprt; /* > 0 : Print check apres calcul */ 23 23 … … 29 29 void fop_1() 30 30 { 31 T_Type s ;31 T_Type s=0; 32 32 int i,j,k; 33 33 printf("--- fop_1: Double Loop: z[k] = Somme_i(x[k]*y[i]) --- \n"); … … 42 42 void fop_2() 43 43 { 44 T_Type s ;44 T_Type s=0; 45 45 int i,j,k; 46 46 printf("--- fop_2: Double Loop: z[k] = Somme_i(x[k]*y[i]+x[i]*y[k]) --- \n"); … … 55 55 void fop_3() 56 56 { 57 T_Type s ;57 T_Type s=0; 58 58 int i,j,k; 59 59 printf("--- fop_3: Double Loop: z[k] = Somme_i(x[k]*y[i]+x[i]*y[k]-0.85*(y[k]+x[k])) --- \n"); … … 62 62 z[k] = s; 63 63 N_OP += 7*SZ; 64 } 65 return; 66 } 67 68 void fop_4() 69 { 70 T_Type s=0; 71 int i,j,k; 72 printf("--- fop_4: Double Loop: z[k] = Somme_i(x[k]*sin(y[i])+y[k]*cos(x[i])) --- \n"); 73 for(k=0; k<SZ; k++) { 74 for(i=0; i<SZ; i++) s += x[k]*sin(y[i])+y[k]*cos(x[i]); 75 z[k] = s; 76 N_OP += 70*SZ; // le facteur 70 est approximatif 77 } 78 return; 79 } 80 81 void fop_5() 82 { 83 T_Type s=0; 84 int i,j,k; 85 printf("--- fop_5: Double Loop: z[k] = Somme_i(x[k]*sin(y[i])+log(fabs(x[i])+0.1)+y[k]) --- \n"); 86 for(k=0; k<SZ; k++) { 87 for(i=0; i<SZ; i++) s += x[k]*sin(y[i])+log(fabs(x[i])+0.1)+y[k]; 88 z[k] = s; 89 N_OP += 100*SZ; // le facteur 100 est approximatif 64 90 } 65 91 return; … … 84 110 printf("--- Programme cpupower: (Puissance de calcul) ---- \n"); 85 111 printf(" Usage cpupower Op=1/2/3 [Size=20000] [CkPrt=0] \n"); 112 printf(" Op=1 Double Loop: z[k] = Somme_i(x[k]*y[i]) \n"); 113 printf(" Op=2 Double Loop: z[k] = Somme_i(x[k]*y[i]+x[i]*y[k]) \n"); 114 printf(" Op=3 Double Loop: z[k] = Somme_i(x[k]*y[i]+x[i]*y[k]-0.85*(y[k]+x[k])) \n"); 115 printf(" Op=4 Double Loop: z[k] = Somme_i(x[k]*sin(y[i])+y[k]*cos(x[i])) \n"); 116 printf(" Op=5 Double Loop: z[k] = Somme_i(x[k]*sin(y[i])+log(fabs(x[i])+0.1)+y[k]) \n"); 86 117 return 1; 87 118 } … … 103 134 } 104 135 PrtTim("--Fin malloc+init x,y,z "); 105 if (OPE == 3) fop_3(); 136 if (OPE == 5) fop_5(); 137 else if (OPE == 4) fop_4(); 138 else if (OPE == 3) fop_3(); 106 139 else if (OPE == 2) fop_2(); 107 140 else fop_1();
Note:
See TracChangeset
for help on using the changeset viewer.