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

Last change on this file since 3669 was 2972, checked in by ansari, 19 years ago

MAJ fichier resultat test de rapidite (speed/jet) avec les mesures de juin 2006 , Reza 12/06/2006

File size: 7.8 KB
RevLine 
[2368]1
2Performances classes tableaux en C++ et expression templates
3------------------------------------------------------------
[2972]4<<<< Mise a jour mesures avec SOPHYA V=1.960 - 10 Juin 2006
5Compile sur asc> soit avec -O -g soit -fast (ascfast)
[2368]6
7<<<< Comparaison/resultats du 23/04/2003 >>>>
8
9 A/ Performances globales / en particulier acces aux elements
10 B/ Apport des ET (Expression Templates) (JET)
11 C/ Comparaison avec le code fortran (f77) et le BLAS
[2470]12 D/ Les matrices SimpleMatrix<T> (fichiers smtx.h .cc)
13 sont codes en utilisant les NDataBlock<T> de SOPHYA
14 et les operations passent directement par les
15 operations definies sur les NDataBlock
16 E/ Comparaison avec tableaux de SOPHYA (TMatrix<r_8>)
17
18 F/ Liste d'operations
[2368]19 1- (note ElAcc) Remplissage de tableau avec acces aux elements de type
20 Matrix mx(nrow, ncol)
21 mx(i,j) = expression (i, j, ...)
22
23 ElAcc C++, surcharge d'operateur (i,j)
24 ElAcc fortran: tableaux natif fortran
25
26 2- Operation de type (note CMAdd), c1,c2,c3 trois constantes
27 mx = mx1*c1 + mx2*c2 + mx3*c3
28
29
30 *** Boucle 50 fois sur Tableaux 1000x500 ***
31
32
33Linux:
34======
35Programme fortran , compile avec g77 -O3
36Programme C++, compile avec -O3, SOPHYA avec flags habituels (-g -O ?)
37>> eros3> uname -a
38>> Linux eros3 2.4.18 #10 SMP Mon Dec 16 12:45:16 CET 2002 i686 unknown
39>> Intel(R) Xeon(TM) CPU 2.40GHz
40
41Programmes: lx_fmtx , lx_tjet / Commandes:
42csh> time lx_fmtx
43csh> time lx_tjet 50 1000 500
44
45
46Tru64/OSF:
47==========
48BLAS optimise de Compaq(/DEC -> HP) -lcxml
49Programmes compile avec -O3 -> osfO3_fmtx osfO3_tjet
50 -arch host -fat -> ascfast_fmtx ascfast_tjet
51 fortran avec -O5 -> osfO5_fmtx
52
53>> asc.lal.in2p3.fr> uname -a
54>> OSF1 asc.lal.in2p3.fr V5.1 2650 alpha
55>> ES47 Chip Alpha EV7 @ 1 GHz
56
57
58====================================================
59 Temps CPU en secondes
60====================================================
61
62
63<ElAcc>:
64ElAcc_1 : fortran, acces natif tableaux 2-D
[2972]65 C/C++, pointeur double * p = new double[size]; acces p[i]
66 tjet(31)
67ElAcc_2 : Classe SimpleMatrix<T> / surcharge d'operateur tjet(1)
68ElAcc_3 : Classe SOPHYA::TMatrix<T> / surcharge d'operateur tjet(21)
[2368]69
70------------------------------------------------------------
71 ElAcc_1 ElAcc_2 ElAcc_3
72------------------------------------------------------------
73lx_fmtx: 1.59
74lx_tjet: 0.92 0.84 0.9
75............................................................
76osfO3_fmtx: 3.31
77osfO5_fmtx: 0.46
78ascfast_fmtx: 3.21
79............................................................
80osfO3_tjet: 1.0 1.06 1.03
81ascfast_tjet: 0.66 0.73 0.70
82------------------------------------------------------------
[2470]83Decembre 2003 - SOPHYA compile avec les options d'optimisation
84et debug = "-fast -g3" , ainsi que le programme tjet sur asc
85............................................................
86ascfast_tjet: 0.55 0.63 0.60
87------------------------------------------------------------
[2972]88Juin 2006 - SOPHYA compile avec les options standard
89-O -g1 asc_tjet et avec -fast ascfast_tjet
90asc_tjet: 0.98 1.2 1.28
91ascfast_tjet: 0.57 0.63 0.60
92............................................................
93Juin 2006 : pour le f77 et f90 (fmtx.f f90mtx.f90) - il n'y
94pas de difference entre le temps avec -O et -fast
95asc_fmtx: 3.5
96asc_f90mtx: 0.7
97............................................................
98Juin 2006 : sur ccali avec icc et ifort
99Compile avec option par defaut -O
100ali_tjet: 0.81 0.88 0.96
101ali_fmtx: 1.27
102ali_f90mtx: 1.29
103------------------------------------------------------------
[2368]104
105<CMAdd>
106CMAdd_1 : fortran, boucle + acces natif tableaux 2-D
107 C/C++, pointeur double * p = new double[size]; boucle p[i] = q[i] ....
[2972]108 tjet(32)
[2368]109CMAdd_2 : fortran / appel BLAS (copy/ CstMult/ VecAdd)
[2972]110CMAdd_3 : C++/SimpleMatrix<T>::MultCst() / AddElt() tjet(2)
111CMAdd_4 : C++/JET : SimpleMatrix<T>:: operator overload with Exp. Templates tjet(3)
112CMAdd_5 : SOPHYA::TMatrix<T>::MultCst() / AddElt() tjet(22)
113CMAdd_6 : SOPHYA::TMatrix<T>::operator overlaod tjet(23)
[2368]114 CMAdd_5, CMAdd_6 : mx = mx1*c1 + mx2*c2 + mx3*c3
115
[2470]116Note Nov 2003 : J'ai echange ci-dessous _4 et _5 - Je pense qu'il
117y avait une ereur et _5 _6 correspondent aux resultats avec les
118SOPHYA::TMatrix<T> dans les tableaux ci-dessous.
119
[2368]120--------------------------------------------------------------------------
121 CMAdd_1 CMAdd_2 CMAdd_3 CMAdd_4 CMAdd_5 CMAdd_6
122--------------------------------------------------------------------------
123lx_fmtx: 2.58 1.11
124lx_tjet: 0.62 2.26 0.52 2.22 4.04
125..........................................................................
126osfO3_fmtx: 4.31 0.63
127osfO5_fmtx: 0.26 0.71
128ascfast_fmtx: 4.13 0.63
129..........................................................................
130osfO3_tjet: 0.65 1.48 1.36 3.08 3.53
131ascfast_tjet: 1.06 1.91 1.84 3.81 3.83
132--------------------------------------------------------------------------
[2470]133Decembre 2003 - SOPHYA compile avec les options d'optimisation
134et debug = "-fast -g3" , ainsi que le programme tjet sur asc
135ascfast_tjet: 0.72 1.05 1.42 2.55 2.52
136--------------------------------------------------------------------------
[2972]137--------------------------------------------------------------------------
138Juin 2006 - SOPHYA compile avec les options standard
139-O -g1 asc_tjet et avec -fast ascfast_tjet
140asc_tjet: 0.7 1.52 1.83 2.13 2.47
141ascfast_tjet: 0.75 1.04 1.4 1.31 1.51
142.........................................................................
143Juin 2006 : pour le f77 et f90 (fmtx.f f90mtx.f90) - il n'y
144pas de difference entre le temps avec -O et -fast
145asc_fmtx: 4.4 0.68
146asc_f90mtx: 0.26
147.........................................................................
148Juin 2006 : sur ccali avec icc et ifort
149Compile avec option par defaut -O
150ali_tjet: 0.66 2.8 0.65 1.91 2.9
151ali_fmtx: 1.37 0.79
152ali_f90mtx: 0.36
153--------------------------------------------------------------------------
[2368]154
155
156Notes:
1571/ performances f77 -O5 doivent etre reverifie: l'optimiseur fortran
158(/f90) fait des optimisations sauvages dans certains cas, en virant
159les boucles que l'on veut tester. En effet, suivant le niveau d'optimisation,
160le fortran de DEC/Compaq (/HP) arrive a faire tendre le temps de calcul
161vers zero dans certains cas, independant de la taille des tableaux !
[2972]162 Note de Juin 2006: f90 est effectivement tres efficace pour effectuer
163 les operations sur tableaux natifs - verification sur OSF / f90
164 et Linux/ifort (compilo Intel)
[2368]165
1662/ l'optimisation -arch host -fast (code d'execution rapide adapte a
167l'architecture du processeur de la machine hote) n'arrive pas a
168ameliorer les performances - Cela est peut-etre imputable a
169la librairie SOPHYA, compile avec -g -O , pour proc alpha generique.
[2972]170 Note de Juin2006: En compilant SOPHYA aussi avec -fast, on gagne,
171 voir ci-dessus.
[2470]172
1733) Decembre 2003 - Resultats sur asc (OSF1-cxx , flag -fast)
174Je pense que la difference de performances tableaux SOPHYA
175et SimpleMatrix<T> peuvent s'expliquer par le codage de
176la boucle d'operations ds NDataBlock<T> utilisee ds
177SimpleMatrix<T> :
178 while (p<pe) *p++ -= *pa++; (ndatablock.cc)
179compare a une boucle for(i=;i<;i+=) utilisee dans
180TArray<T> (fichier tarray.cc) -
181Hypothese a verifier
[2972]182 Juin 2006 : les optimisations des operations sur tableaux (Juil04
183 et Avr06) ont apparemment remedie a ce probleme.
[2470]184
Note: See TracBrowser for help on using the repository browser.