π
<-

Performances, la NumWorks détrône la HP Prime ! :o

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby critor » 17 Dec 2017, 14:58

Comme promis puisque l'écart est véritablement significatif, j'ai parlé de ce que donnent les performances avec les derniers commits :
viewtopic.php?f=97&t=20818#p224863

Merci à Adriweb de m'avoir fait la recompilation du firmware.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Online

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby parisse » 17 Dec 2017, 20:50

Comme le sujet est a la mode, j'ai pas mal retravaille dans Xcas sur les fractales et en passant je signale une petite optimisation du code qui fait gagner quelques % sur la Prime en mode CAS (probablement moins sur la Numowrks). Il s'agit d'echanger les boucles en x et en y pour precalculer c= -2.1+i*(h*y+0.935) et incrementer c une fois la boucle en x terminee par c=c+w.
Les versions a jour de Xcas pour Firefox permettent d'obtenir le Mandelbrot en environ 1 seconde sur un desktop et environ 10 secondes sur mon smartphone. L'autre fractale, les bassins d'attraction, est moins rapide, d'un facteur 3 environ. Si vous voulez les tester, voici un lien de depart
https://www-fourier.ujf-grenoble.fr/~parisse/algoxcas.html#exemples
Malgre les ameliorations recentes pour la Numworks (ou potentiellement sur la HP Prime un jour), il me parait peu probable qu'en-dehors de quelques passiones, beaucoup de gens soient vraiment interesses par tester des fractales sur calculatrices, c'est trop lent. Meme sur smartphone c'est limite, il faut un desktop pour s'amuser. Par contre pour le developpement, c'est un defi qui permet d'optimiser pas mal de fonctions (j'ai du gagner un facteur 2 dans Xcas pour Firefox).
Enfin, je voudrais rappeler que quand on parle de performances, il n'est pas raisonnable de se focaliser sur un seul exemple. Les usages d'une calculatrice sont divers, certaines commandes sont plus ou moins optimisees. La HP Prime en mode non CAS travaille avec des flottants en base 10, comparer la puissance brute sur un unique exemple faisant intervenir principalement du calcul flottant avec la Numworks qui travaille en base 2, c'est biaise. Meme en restant dans le domaine du graphisme pixellise, personne n'a pour le moment propose de code pour les bassins d'attraction sur la Numworks. Et si on regarde dans d'autres domaines, les performances sont (bien) meilleures sur HP: par exemple factorisation d'entiers ou simulation.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby critor » 17 Dec 2017, 21:13

Merci pour les optimisations intéressantes. :)

parisse wrote:Enfin, je voudrais rappeler que quand on parle de performances, il n'est pas raisonnable de se focaliser sur un seul exemple.

Bien pour ça que cela n'a pas été mis en avant en août dernier, la NumWorks étant encore 'difficilement' programmable à l'époque.

C'est donc après avoir confirmé des écarts significatifs sur des exemples différents que nous avons annoncé.

parisse wrote:Meme en restant dans le domaine du graphisme pixellise, personne n'a pour le moment propose de code pour les bassins d'attraction sur la Numworks.

Faut-il juste que les choses à comparer soient comparables.
Pas de fonctions symb2poly(), proot(), evalf() ou horner() sur NumWorks à ma connaissance.
Il serait donc biaisé de comparer la HP Prime avec ces fonctions built-in compilées, à la NumWorks où il faudrait toutes les adapter à la main en interprété.

De façon similaire la TI-Nspire CX CAS n'a pas été incluse dans ce test, vu qu'elle oblige à ce jour à passer plus ou moins intuitivement par une bufferisation ou un calque offscreen pour les sorties graphiques, et serait donc je pense plus rapide sur une adaptation de cet exemple, ce qui ne voudrait absolument rien dire.



Que la HP Prime fasse plus de travail en interne est une chose.
Le fait est qu'on demande ici exactement la même chose aux deux calculatrices.
Donc oui, la comparaison en performances (ou puissance apparente) est valide du point de vue utilisateur, le seul qui nous intéresse.

Ce n'est pas une comparaison de puissances réelles des processeurs, ce dont d'ailleurs l'utilisateur se moque complètement, au profit du point précédent. Il n'empêche que les écarts sont tellement importants que je commence sérieusement à douter des 400 MHz.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Online

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby parisse » 17 Dec 2017, 21:33

Mais justement j'insiste, la richesse de la bibliotheque de commandes a disposition est un element fondemental dans la mesure des performances d'un langage interprete et c'est aussi une mesure de l'utilite d'un langage pour du developpement rapide. Et c'est la que le choix d'avoir un langage integre au reste de la calculatrice prend toute son importance. Sur la Numworks, vous beneficiez de certaines des fonctionnalites builtin Python et des modules Python portes: math, cmath et graphiques pixelises. Et c'est tout pour le moment. Pas de calcul matriciel par exemple. Probablement que la prochaine release va rajouter le module random ou au moins une partie pour faire un peu de simulation, mais pas forcement de quoi traiter rapidement des listes de donnees et probablement pas de quoi faire des representations graphiques d'histogramme obtenus par simulation. Il faudra le faire a la main avec les graphiques pixellises. Sur la Prime, par contre, vous pouvez utiliser toutes les instructions CAS dans un programme, que ce soit operations matricielles, racines de polynome, facteurs d'un entier ou instructions de trace graphique et evidemment que ca influera sur la rapidite a ecrire votre programme et a l'executer.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby critor » 17 Dec 2017, 21:39

Et nulle intention de ma part de cacher les possibilités intégrées très supérieures de la HP Prime.
C'est pour cela qu'elle est devant la NumWorks à notre classement de rentrée, et qu'au prochain classement elle va très probablement le rester et peut-être même passer première devant la Nspire CX CAS avec les dernières nouveautés.

Cela n'a juste rien à voir selon moi avec des tests de performances qui doivent rester sur des exemples relativement simples afin de pouvoir comparer équitablement un nombre maximal de modèles avec le moins de biais possible.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Online

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby parisse » 17 Dec 2017, 21:50

C'est bien pour cela que questions performances, il faudrait faire plusieurs comparaisons dans des domaines varies. Comparer equitablement ne peut se limiter a l'exemple mis en avant par l'un des constructeurs qui teste principalement la vitesse pure de l'interpreteur et le calcul en complexes flottants.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 86%
 
Posts: 3663
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby critor » 17 Dec 2017, 21:57

En tous cas pour un classement de rentrée concernant tous les modèles, un exemple qui comme ici effectue des sorties graphiques n'est pas envisageable.
Trop différences à la fois entre les écrans, et entre les instructions permettant d'allumer des pixels.

Mais dans tous les cas merci pour la suggestion.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby critor » 17 Dec 2017, 23:21

parisse wrote:Comme le sujet est a la mode, j'ai pas mal retravaille dans Xcas sur les fractales et en passant je signale une petite optimisation du code qui fait gagner quelques % sur la Prime en mode CAS (probablement moins sur la Numowrks). Il s'agit d'echanger les boucles en x et en y pour precalculer c= -2.1+i*(h*y+0.935) et incrementer c une fois la boucle en x terminee par c=c+w.
Les versions a jour de Xcas pour Firefox permettent d'obtenir le Mandelbrot en environ 1 seconde sur un desktop et environ 10 secondes sur mon smartphone.


Fait, voici ce que ça donne. Et merci bien.

HP Prime - CAS+Python :
Code: Select all
#cas
def fractal_python(W,H,N) :
local x,y,z,c,j,w,h,n;
w=2.7/(W-1)
h=1.87/(H-1)
n=255.0/N
for y in range(H):
  c=-2.1-*(h*y-.935)
  for x in range(W):
   z=0
   for j in range(N):
    z=z*z+c
    if abs(z)>2:
     break
   PIXON_P(x,y,255*20*j+256)
   c=c+w
FREEZE
WAIT(0)
#end
2mins25.50s (on gagne une bonne 10aine de secondes)

HP Prime - CAS+HPPPL :
Code: Select all
#cas
fractal_cas(W,H,N)
BEGIN
local x,y,z,c,j,w,h,n;
w:=2.7/(W-1);
h:=1.87/(H-1);
n:=255.0/N;
FOR y FROM 0 TO H-1 DO
  c:=-2.1-*(h*y-.935);
  FOR x FROM 0 TO W-1 DO
   z:=0;
   FOR j FROM 0 to N-1 DO
    z:=z*z+c;
    IF abs(z)>2 THEN
     break;
    END;
   END;
   PIXON_P(x,y,255*j*20+256);
   c:=c+w;
  END;
END;
FREEZE;
WAIT(0);
END;
#end
2mins25.09s (de même, une bonne 10aine de secondes)

HP Prime - HPPPL :
Code: Select all
EXPORT fractal(W,H,N)
BEGIN
LOCAL x,y,z,c,j,w,h,n;
w:=2.7/(W-1);
h:=1.87/(H-1);
n:=255.0/N;
FOR y FROM 0 TO H-1 DO
  c:=-2.1-*(h*y-.935);
  FOR x FROM 0 TO W-1 DO
   z:=0;
   FOR j FROM 0 to N-1 DO
    z:=z*z+c;
    IF ABS(z)>2 THEN
     break;
    END;
   END;
   PIXON_P(x,y,j*255*20);
   c:=c+w;
  END;
END;
FREEZE;
WAIT(0);
END;
1min35.93s (on gagne moins de 2 secondes)

NumWorks + firmware à J+2 du 1.2.0 :
Code: Select all
from kandinsky import set_pixel
def mandelbrot(W,H,N) :
w=2.7/(W-1)
h=1.87/(H-1)
n=255.0/N
for y in range(H):
  c=complex(-2.1,.935-h*y)
  for x in range(W):
   z=complex(0,0)
   for j in range(N):
    z=z*z+c
    if abs(z)>2:
     break
   set_pixel(x,y,255*20*j+256)
   c=c+w
51.48s (on gagne un peu plus de 2 secondes)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby zardam » 18 Dec 2017, 08:22

J'ai fini par expliquer la différence de performance avec la pyboard. Par défaut le firmware de la pyboard est compilé avec MICROPY_FLOAT_IMPL=MICROPY_FLOAT_IMPL_FLOAT alors que la Numworks utilise MICROPY_FLOAT_IMPL_DOUBLE.

En compilant le firmware de la pyboard pour des double précision, le temps de calcul devient identique (à la fréquence CPU près)

Avec MICROPY_FLOAT_IMPL_FLOAT, la pyboard est aussi bien aidée par : https://github.com/pycom/pycom-micropyt ... fp_sqrtf.c je suppose.
User avatar
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 34.6%
 
Posts: 233
Images: 13
Joined: 11 Oct 2017, 23:39
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Unread postby Adriweb » 18 Dec 2017, 09:25

@critor: dans le code numworks, la ligne c=complex(-2.1,.935-h*y) est placée avant le premier For, par erreur de copie je suppose

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

PreviousNext

Return to News NumWorks

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
786 utilisateurs:
>768 invités
>10 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)