Changeset 2537 in Sophya for trunk/Eval


Ignore:
Timestamp:
May 18, 2004, 10:59:19 AM (21 years ago)
Author:
ansari
Message:

Amelioration programme cpupower.c (estimation puissance CPU) et version java (cpupower.java) - Reza 18 Mai 2004

Location:
trunk/Eval/Speed
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Eval/Speed/cpupower.c

    r2534 r2537  
    1010/*  ---------------------------------------------------  */
    1111/*  --- 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  */
    1313/*  R. Ansari   -   LAL   Mai 2004                       */
    1414/*  ---------------------------------------------------  */
     
    1919static int SZ;                    /* Taille de tableau */
    2020static double N_OP;               /* Nb operations */
    21 static  int OPE;                  /* Choix Operation fop_1 ou fop_2 */
     21static  int OPE;                  /* Choix Operation fop_1/2/3/4    */
    2222static int ckprt;                 /* > 0 : Print check apres calcul */
    2323
     
    2929void fop_1()
    3030{
    31   T_Type s;
     31  T_Type s=0;
    3232  int i,j,k;
    3333  printf("--- fop_1: Double Loop: z[k] = Somme_i(x[k]*y[i]) --- \n");
     
    4242void fop_2()
    4343{
    44   T_Type s;
     44  T_Type s=0;
    4545  int i,j,k;
    4646  printf("--- fop_2: Double Loop: z[k] = Somme_i(x[k]*y[i]+x[i]*y[k]) --- \n");
     
    5555void fop_3()
    5656{
    57   T_Type s;
     57  T_Type s=0;
    5858  int i,j,k;
    5959  printf("--- fop_3: Double Loop: z[k] = Somme_i(x[k]*y[i]+x[i]*y[k]-0.85*(y[k]+x[k])) --- \n");
     
    6262    z[k] = s;
    6363    N_OP += 7*SZ;
     64  }
     65  return;
     66}
     67
     68void 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
     81void 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
    6490  }
    6591  return;
     
    84110    printf("--- Programme cpupower: (Puissance de calcul) ---- \n");
    85111    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");
    86117    return 1;
    87118  }
     
    103134  }
    104135  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();
    106139  else if (OPE == 2)  fop_2();
    107140  else fop_1();
Note: See TracChangeset for help on using the changeset viewer.