source: Sophya/trunk/Eval/JET/results.txt@ 2470

Last change on this file since 2470 was 2470, checked in by ansari, 22 years ago

MAJ fichier resultat de performances tableaux et JET - Reza 4 Dec 2003

File size: 5.6 KB
Line 
1
2Performances classes tableaux en C++ et expression templates
3------------------------------------------------------------
4
5<<<< Comparaison/resultats du 23/04/2003 >>>>
6
7 A/ Performances globales / en particulier acces aux elements
8 B/ Apport des ET (Expression Templates) (JET)
9 C/ Comparaison avec le code fortran (f77) et le BLAS
10 D/ Les matrices SimpleMatrix<T> (fichiers smtx.h .cc)
11 sont codes en utilisant les NDataBlock<T> de SOPHYA
12 et les operations passent directement par les
13 operations definies sur les NDataBlock
14 E/ Comparaison avec tableaux de SOPHYA (TMatrix<r_8>)
15
16 F/ Liste d'operations
17 1- (note ElAcc) Remplissage de tableau avec acces aux elements de type
18 Matrix mx(nrow, ncol)
19 mx(i,j) = expression (i, j, ...)
20
21 ElAcc C++, surcharge d'operateur (i,j)
22 ElAcc fortran: tableaux natif fortran
23
24 2- Operation de type (note CMAdd), c1,c2,c3 trois constantes
25 mx = mx1*c1 + mx2*c2 + mx3*c3
26
27
28 *** Boucle 50 fois sur Tableaux 1000x500 ***
29
30
31Linux:
32======
33Programme fortran , compile avec g77 -O3
34Programme C++, compile avec -O3, SOPHYA avec flags habituels (-g -O ?)
35>> eros3> uname -a
36>> Linux eros3 2.4.18 #10 SMP Mon Dec 16 12:45:16 CET 2002 i686 unknown
37>> Intel(R) Xeon(TM) CPU 2.40GHz
38
39Programmes: lx_fmtx , lx_tjet / Commandes:
40csh> time lx_fmtx
41csh> time lx_tjet 50 1000 500
42
43
44Tru64/OSF:
45==========
46BLAS optimise de Compaq(/DEC -> HP) -lcxml
47Programmes compile avec -O3 -> osfO3_fmtx osfO3_tjet
48 -arch host -fat -> ascfast_fmtx ascfast_tjet
49 fortran avec -O5 -> osfO5_fmtx
50
51>> asc.lal.in2p3.fr> uname -a
52>> OSF1 asc.lal.in2p3.fr V5.1 2650 alpha
53>> ES47 Chip Alpha EV7 @ 1 GHz
54
55
56====================================================
57 Temps CPU en secondes
58====================================================
59
60
61<ElAcc>:
62ElAcc_1 : fortran, acces natif tableaux 2-D
63 C/C++, pointeur double * p = new double[size]; acces p[i]
64ElAcc_2 : Classe SimpleMatrix<T> / surcharge d'operateur
65ElAcc_3 : Classe SOPHYA::TMatrix<T> / surcharge d'operateur
66
67------------------------------------------------------------
68 ElAcc_1 ElAcc_2 ElAcc_3
69------------------------------------------------------------
70lx_fmtx: 1.59
71lx_tjet: 0.92 0.84 0.9
72............................................................
73osfO3_fmtx: 3.31
74osfO5_fmtx: 0.46
75ascfast_fmtx: 3.21
76............................................................
77osfO3_tjet: 1.0 1.06 1.03
78ascfast_tjet: 0.66 0.73 0.70
79------------------------------------------------------------
80Decembre 2003 - SOPHYA compile avec les options d'optimisation
81et debug = "-fast -g3" , ainsi que le programme tjet sur asc
82............................................................
83ascfast_tjet: 0.55 0.63 0.60
84------------------------------------------------------------
85
86
87<CMAdd>
88CMAdd_1 : fortran, boucle + acces natif tableaux 2-D
89 C/C++, pointeur double * p = new double[size]; boucle p[i] = q[i] ....
90CMAdd_2 : fortran / appel BLAS (copy/ CstMult/ VecAdd)
91CMAdd_3 : C++/SimpleMatrix<T>::MultCst() / AddElt()
92CMAdd_4 : C++/JET : SimpleMatrix<T>:: operator overload with Exp. Templates
93CMAdd_5 : SOPHYA::TMatrix<T>::MultCst() / AddElt()
94CMAdd_6 : SOPHYA::TMatrix<T>::operator overlaod
95 CMAdd_5, CMAdd_6 : mx = mx1*c1 + mx2*c2 + mx3*c3
96
97Note Nov 2003 : J'ai echange ci-dessous _4 et _5 - Je pense qu'il
98y avait une ereur et _5 _6 correspondent aux resultats avec les
99SOPHYA::TMatrix<T> dans les tableaux ci-dessous.
100
101--------------------------------------------------------------------------
102 CMAdd_1 CMAdd_2 CMAdd_3 CMAdd_4 CMAdd_5 CMAdd_6
103--------------------------------------------------------------------------
104lx_fmtx: 2.58 1.11
105lx_tjet: 0.62 2.26 0.52 2.22 4.04
106..........................................................................
107osfO3_fmtx: 4.31 0.63
108osfO5_fmtx: 0.26 0.71
109ascfast_fmtx: 4.13 0.63
110..........................................................................
111osfO3_tjet: 0.65 1.48 1.36 3.08 3.53
112ascfast_tjet: 1.06 1.91 1.84 3.81 3.83
113--------------------------------------------------------------------------
114Decembre 2003 - SOPHYA compile avec les options d'optimisation
115et debug = "-fast -g3" , ainsi que le programme tjet sur asc
116ascfast_tjet: 0.72 1.05 1.42 2.55 2.52
117--------------------------------------------------------------------------
118
119
120Notes:
1211/ performances f77 -O5 doivent etre reverifie: l'optimiseur fortran
122(/f90) fait des optimisations sauvages dans certains cas, en virant
123les boucles que l'on veut tester. En effet, suivant le niveau d'optimisation,
124le fortran de DEC/Compaq (/HP) arrive a faire tendre le temps de calcul
125vers zero dans certains cas, independant de la taille des tableaux !
126
1272/ l'optimisation -arch host -fast (code d'execution rapide adapte a
128l'architecture du processeur de la machine hote) n'arrive pas a
129ameliorer les performances - Cela est peut-etre imputable a
130la librairie SOPHYA, compile avec -g -O , pour proc alpha generique.
131
132
1333) Decembre 2003 - Resultats sur asc (OSF1-cxx , flag -fast)
134Je pense que la difference de performances tableaux SOPHYA
135et SimpleMatrix<T> peuvent s'expliquer par le codage de
136la boucle d'operations ds NDataBlock<T> utilisee ds
137SimpleMatrix<T> :
138 while (p<pe) *p++ -= *pa++; (ndatablock.cc)
139compare a une boucle for(i=;i<;i+=) utilisee dans
140TArray<T> (fichier tarray.cc) -
141Hypothese a verifier
142
Note: See TracBrowser for help on using the repository browser.