C'est justement ce que je reproche. On fabrique aujourd'hui, ce qu'on
appelle dans l'électronique des "pousse-cartes". Des gens qui savent Í
peu près bricoler mais qui ne maÍ®trisent plus grand'chose.
Ben non, lÍ encore, je ne suis pas d'accord. On simplifie le
développement au détriment des ressources utilisées.
Un bel exemple est le premier proto du linky
un passage en assembleur
est nécessaire pour bien savoir de quoi on parle.
Sauf que sans le passage par la case assembleur, il est difficile de
comprendre comment fonctionne réellement le bazar.
Comment expliques-tu Í
un étudiant qu'on ne renvoie pas une variable automatique en C si tu ne
lui a pas expliqué avant comment fonctionne la pile ?
Le dernier, c'était un centralien. Tous mes stagiaires sont bac+4/5 en
école d'ingénieur (électronique et/ou informatique).
Ben tiens.. L'arduino... Je reproche Í l'Arduino exactement ce que je
reproche au développement informatique moderne.
Je te laisse répondre que l'évolution de l'informatique va forcément
dans le bon sens
C'est justement ce que je reproche. On fabrique aujourd'hui, ce qu'on
appelle dans l'électronique des "pousse-cartes". Des gens qui savent Í
peu près bricoler mais qui ne maÍ®trisent plus grand'chose.
Ben non, lÍ encore, je ne suis pas d'accord. On simplifie le
développement au détriment des ressources utilisées.
Un bel exemple est le premier proto du linky
un passage en assembleur
est nécessaire pour bien savoir de quoi on parle.
Sauf que sans le passage par la case assembleur, il est difficile de
comprendre comment fonctionne réellement le bazar.
Comment expliques-tu Í
un étudiant qu'on ne renvoie pas une variable automatique en C si tu ne
lui a pas expliqué avant comment fonctionne la pile ?
Le dernier, c'était un centralien. Tous mes stagiaires sont bac+4/5 en
école d'ingénieur (électronique et/ou informatique).
Ben tiens.. L'arduino... Je reproche Í l'Arduino exactement ce que je
reproche au développement informatique moderne.
Je te laisse répondre que l'évolution de l'informatique va forcément
dans le bon sens
C'est justement ce que je reproche. On fabrique aujourd'hui, ce qu'on
appelle dans l'électronique des "pousse-cartes". Des gens qui savent Í
peu près bricoler mais qui ne maÍ®trisent plus grand'chose.
Ben non, lÍ encore, je ne suis pas d'accord. On simplifie le
développement au détriment des ressources utilisées.
Un bel exemple est le premier proto du linky
un passage en assembleur
est nécessaire pour bien savoir de quoi on parle.
Sauf que sans le passage par la case assembleur, il est difficile de
comprendre comment fonctionne réellement le bazar.
Comment expliques-tu Í
un étudiant qu'on ne renvoie pas une variable automatique en C si tu ne
lui a pas expliqué avant comment fonctionne la pile ?
Le dernier, c'était un centralien. Tous mes stagiaires sont bac+4/5 en
école d'ingénieur (électronique et/ou informatique).
Ben tiens.. L'arduino... Je reproche Í l'Arduino exactement ce que je
reproche au développement informatique moderne.
Je te laisse répondre que l'évolution de l'informatique va forcément
dans le bon sens
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Apprendre lÍ¢€™assembleur est une bonne chose pour un ̓©lectronicien. En
revanche, il est fortement ̓ d̓©conseiller d̓©sormais pour un
informaticien qui ne fait pas de syst̓¨me : les processeurs sont
d̓©sormais et depuis longtemps superscalaires et multicÅ“urs et, avec de
telles architectures, un programme en assembleur sera inefficace tant en
termes de performances que dÍ¢€™usage des ressources
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Apprendre lÍ¢€™assembleur est une bonne chose pour un ̓©lectronicien. En
revanche, il est fortement ̓ d̓©conseiller d̓©sormais pour un
informaticien qui ne fait pas de syst̓¨me : les processeurs sont
d̓©sormais et depuis longtemps superscalaires et multicÅ“urs et, avec de
telles architectures, un programme en assembleur sera inefficace tant en
termes de performances que dÍ¢€™usage des ressources
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Apprendre lÍ¢€™assembleur est une bonne chose pour un ̓©lectronicien. En
revanche, il est fortement ̓ d̓©conseiller d̓©sormais pour un
informaticien qui ne fait pas de syst̓¨me : les processeurs sont
d̓©sormais et depuis longtemps superscalaires et multicÅ“urs et, avec de
telles architectures, un programme en assembleur sera inefficace tant en
termes de performances que dÍ¢€™usage des ressources
C'est oublier que beaucoup de systèmes de build utilisés pour faire ces
logiciels complexes génèrent de l'assembleur Í un moment ...
L'assembleur n'est donc pas inefficace c'est juste que faire la même chose
prend trop de temps et ne serait pas Í la portée de beaucoup de monde.
C'est oublier que beaucoup de systèmes de build utilisés pour faire ces
logiciels complexes génèrent de l'assembleur Í un moment ...
L'assembleur n'est donc pas inefficace c'est juste que faire la même chose
prend trop de temps et ne serait pas Í la portée de beaucoup de monde.
C'est oublier que beaucoup de systèmes de build utilisés pour faire ces
logiciels complexes génèrent de l'assembleur Í un moment ...
L'assembleur n'est donc pas inefficace c'est juste que faire la même chose
prend trop de temps et ne serait pas Í la portée de beaucoup de monde.
Ne pas perdre de vue qu'un langage évolué est juste un outil qui va simplifier
plus ou moins certaines choses mais aussi en rendre plus complexes d'autres et
que tout va de toute façon se terminer en une série d'opcodes digérés par les
CPU et assimilés.
Et il ne faut pas restreindre certains langages Í un type de programmation.
Rien n'empêche de faire de l'objet en C par ex.
Ne pas perdre de vue qu'un langage évolué est juste un outil qui va simplifier
plus ou moins certaines choses mais aussi en rendre plus complexes d'autres et
que tout va de toute façon se terminer en une série d'opcodes digérés par les
CPU et assimilés.
Et il ne faut pas restreindre certains langages Í un type de programmation.
Rien n'empêche de faire de l'objet en C par ex.
Ne pas perdre de vue qu'un langage évolué est juste un outil qui va simplifier
plus ou moins certaines choses mais aussi en rendre plus complexes d'autres et
que tout va de toute façon se terminer en une série d'opcodes digérés par les
CPU et assimilés.
Et il ne faut pas restreindre certains langages Í un type de programmation.
Rien n'empêche de faire de l'objet en C par ex.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Salut ̓ tousÍ¢€¯!
Le 22/02/2021 ̓ 15:44, Ga̓«tan PERRIER a ̓©crit͂ :C'est oublier que beaucoup de syst̓¨mes de build utilis̓©s pour faire ces
logiciels complexes g̓©n̓¨rent de l'assembleur ̓ un moment ...
L'assembleur n'est donc pas inefficace c'est juste que faire la m̓ªme chose
prend trop de temps et ne serait pas ̓ la port̓©e de beaucoup de monde.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ DÍ¢€™exp̓©rience, je pense que cette assertion est fausse, dans le sens
que
les choses sont plus complexes.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Alors, oui, un compilateur transforme un code en langage machine,
mais
ce nÍ¢€™est pas la m̓ªme chose que de d̓©velopper en assembleur. Il nÍ¢€™y a pas
une simple table dÍ¢€™Íƒ©quivalence entre le code et lÍ¢€™ex̓©cutable g̓©n̓©r̓©.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ En particulier, sur les architectures superscalaires, il y a quantit̓©
dÍ¢€™optimisations que peuvent r̓©aliser les compilateurs qui ne sont pas ̓Â
la port̓©e dÍ¢€™un programmeur humain Í¢€“ pas ̓ la port̓©e de peu de monde, ̓Â
la port̓©e de personne.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Quelques exemples, tir̓©s du calcul ̓ hautes performances (mon
domaine),
o̓¹ les temps de calculs sont un probl̓¨me essentiel.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Dans les boucles, il est pr̓©f̓©rable de sÍ¢€™interroger sur lÍ¢€™utilisation
du pipeline. M̓ªme si de base les processeurs ont des m̓©canismes de
pr̓©vision des boucles, en r̓©organisant une boucle on peut gagner
quelques cycles. Il nÍ¢€™y a pas vraiment de r̓¨gle g̓©n̓©rale, cÍ¢€™est plut̓´t
une approche stochastique qui permet de d̓©terminer au mieux comment les
r̓©organiser.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Toujours au sujet des boucles, il est bienvenu de les d̓©rouler. La
profondeur optimale de d̓©roulement nÍ¢€™est de m̓ªme pas une question de
r̓¨gle g̓©n̓©rale, encore une fois ̓§a sÍ¢€™approche stochastiquement.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Organiser les donn̓©es dans le bus permet ̓©galement pas mal de gain.
̓‡a,
outre quÍ¢€™il faut passer du temps pour le faire ̓ la main, ̓§a a tendance
̓ rendre les programmes moins lisibles.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Salut ̓ tousÍ¢€¯!
Le 22/02/2021 ̓ 15:44, Ga̓«tan PERRIER a ̓©crit͂ :
> C'est oublier que beaucoup de syst̓¨mes de build utilis̓©s pour faire ces
> logiciels complexes g̓©n̓¨rent de l'assembleur ̓ un moment ...
> L'assembleur n'est donc pas inefficace c'est juste que faire la m̓ªme chose
> prend trop de temps et ne serait pas ̓ la port̓©e de beaucoup de monde.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ DÍ¢€™exp̓©rience, je pense que cette assertion est fausse, dans le sens
que
les choses sont plus complexes.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Alors, oui, un compilateur transforme un code en langage machine,
mais
ce nÍ¢€™est pas la m̓ªme chose que de d̓©velopper en assembleur. Il nÍ¢€™y a pas
une simple table dÍ¢€™Íƒ©quivalence entre le code et lÍ¢€™ex̓©cutable g̓©n̓©r̓©.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ En particulier, sur les architectures superscalaires, il y a quantit̓©
dÍ¢€™optimisations que peuvent r̓©aliser les compilateurs qui ne sont pas ̓Â
la port̓©e dÍ¢€™un programmeur humain Í¢€“ pas ̓ la port̓©e de peu de monde, ̓Â
la port̓©e de personne.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Quelques exemples, tir̓©s du calcul ̓ hautes performances (mon
domaine),
o̓¹ les temps de calculs sont un probl̓¨me essentiel.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Dans les boucles, il est pr̓©f̓©rable de sÍ¢€™interroger sur lÍ¢€™utilisation
du pipeline. M̓ªme si de base les processeurs ont des m̓©canismes de
pr̓©vision des boucles, en r̓©organisant une boucle on peut gagner
quelques cycles. Il nÍ¢€™y a pas vraiment de r̓¨gle g̓©n̓©rale, cÍ¢€™est plut̓´t
une approche stochastique qui permet de d̓©terminer au mieux comment les
r̓©organiser.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Toujours au sujet des boucles, il est bienvenu de les d̓©rouler. La
profondeur optimale de d̓©roulement nÍ¢€™est de m̓ªme pas une question de
r̓¨gle g̓©n̓©rale, encore une fois ̓§a sÍ¢€™approche stochastiquement.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Organiser les donn̓©es dans le bus permet ̓©galement pas mal de gain.
̓‡a,
outre quÍ¢€™il faut passer du temps pour le faire ̓ la main, ̓§a a tendance
̓ rendre les programmes moins lisibles.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Salut ̓ tousÍ¢€¯!
Le 22/02/2021 ̓ 15:44, Ga̓«tan PERRIER a ̓©crit͂ :C'est oublier que beaucoup de syst̓¨mes de build utilis̓©s pour faire ces
logiciels complexes g̓©n̓¨rent de l'assembleur ̓ un moment ...
L'assembleur n'est donc pas inefficace c'est juste que faire la m̓ªme chose
prend trop de temps et ne serait pas ̓ la port̓©e de beaucoup de monde.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ DÍ¢€™exp̓©rience, je pense que cette assertion est fausse, dans le sens
que
les choses sont plus complexes.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Alors, oui, un compilateur transforme un code en langage machine,
mais
ce nÍ¢€™est pas la m̓ªme chose que de d̓©velopper en assembleur. Il nÍ¢€™y a pas
une simple table dÍ¢€™Íƒ©quivalence entre le code et lÍ¢€™ex̓©cutable g̓©n̓©r̓©.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ En particulier, sur les architectures superscalaires, il y a quantit̓©
dÍ¢€™optimisations que peuvent r̓©aliser les compilateurs qui ne sont pas ̓Â
la port̓©e dÍ¢€™un programmeur humain Í¢€“ pas ̓ la port̓©e de peu de monde, ̓Â
la port̓©e de personne.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Quelques exemples, tir̓©s du calcul ̓ hautes performances (mon
domaine),
o̓¹ les temps de calculs sont un probl̓¨me essentiel.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Dans les boucles, il est pr̓©f̓©rable de sÍ¢€™interroger sur lÍ¢€™utilisation
du pipeline. M̓ªme si de base les processeurs ont des m̓©canismes de
pr̓©vision des boucles, en r̓©organisant une boucle on peut gagner
quelques cycles. Il nÍ¢€™y a pas vraiment de r̓¨gle g̓©n̓©rale, cÍ¢€™est plut̓´t
une approche stochastique qui permet de d̓©terminer au mieux comment les
r̓©organiser.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Toujours au sujet des boucles, il est bienvenu de les d̓©rouler. La
profondeur optimale de d̓©roulement nÍ¢€™est de m̓ªme pas une question de
r̓¨gle g̓©n̓©rale, encore une fois ̓§a sÍ¢€™approche stochastiquement.
͂ ͂ ͂ ͂ ͂ ͂ ͂ ͂ Organiser les donn̓©es dans le bus permet ̓©galement pas mal de gain.
̓‡a,
outre quÍ¢€™il faut passer du temps pour le faire ̓ la main, ̓§a a tendance
̓ rendre les programmes moins lisibles.
Il y a aussi des cas o͹ le compilo ne fait pas une optim qui vu d'un humain est
pourtant évidente ... Mais ok c'est assez rare.
Le déroulement d'une boucle n'est pas toujours opportun. L'architecture
hardware derrière compte énormément pour savoir si il y aura gain.
Mais maintenant de plus en plus de compilo savent dérouler une boucle par eux
même quand tu demandes une optim en vitesse. Ça évite de faire un code qui
deviendra non portable si tu fais le déroulement dans le code lui-même.
Non pas obligatoirement. Tu as des choses que tu peux faire par "calcul" plutÍ´t
que par du if ... then ... comme ça tu n'as de vidange du pipeline dans un des
2 cas. Etc.
Mais pour ça faut avoir un minimum conscience de comment fonctionne ce qui est
en dessous ...
Il y a aussi des cas o͹ le compilo ne fait pas une optim qui vu d'un humain est
pourtant évidente ... Mais ok c'est assez rare.
Le déroulement d'une boucle n'est pas toujours opportun. L'architecture
hardware derrière compte énormément pour savoir si il y aura gain.
Mais maintenant de plus en plus de compilo savent dérouler une boucle par eux
même quand tu demandes une optim en vitesse. Ça évite de faire un code qui
deviendra non portable si tu fais le déroulement dans le code lui-même.
Non pas obligatoirement. Tu as des choses que tu peux faire par "calcul" plutÍ´t
que par du if ... then ... comme ça tu n'as de vidange du pipeline dans un des
2 cas. Etc.
Mais pour ça faut avoir un minimum conscience de comment fonctionne ce qui est
en dessous ...
Il y a aussi des cas o͹ le compilo ne fait pas une optim qui vu d'un humain est
pourtant évidente ... Mais ok c'est assez rare.
Le déroulement d'une boucle n'est pas toujours opportun. L'architecture
hardware derrière compte énormément pour savoir si il y aura gain.
Mais maintenant de plus en plus de compilo savent dérouler une boucle par eux
même quand tu demandes une optim en vitesse. Ça évite de faire un code qui
deviendra non portable si tu fais le déroulement dans le code lui-même.
Non pas obligatoirement. Tu as des choses que tu peux faire par "calcul" plutÍ´t
que par du if ... then ... comme ça tu n'as de vidange du pipeline dans un des
2 cas. Etc.
Mais pour ça faut avoir un minimum conscience de comment fonctionne ce qui est
en dessous ...
[...]
[...]
[...]
[...]
[...]
[...]
Donc je répondrai volontiers aux questions de Morgane si elle le souhaite. Comme je ne suis pas toujours devant mon écran, j’ai mis mon numéro de téléphone.
Donc je répondrai volontiers aux questions de Morgane si elle le souhaite. Comme je ne suis pas toujours devant mon écran, j’ai mis mon numéro de téléphone.
Donc je répondrai volontiers aux questions de Morgane si elle le souhaite. Comme je ne suis pas toujours devant mon écran, j’ai mis mon numéro de téléphone.
Salut Í tous”¯!
Le 22/02/2021 Í 16:51, Gaëtan PERRIER a écrit :Il y a aussi des cas o͹ le compilo ne fait pas une optim qui vu d'un humain est
pourtant évidente ... Mais ok c'est assez rare.
Oui, de plus en plus rare. Tellement rare que de toute façon un
compilateur bien utilisé produit désormais de toute façon un code bien
plus efficace qu’un code réalisé immédiatement en assembleur.
Salut Í tous”¯!
Le 22/02/2021 Í 16:51, Gaëtan PERRIER a écrit :
Il y a aussi des cas o͹ le compilo ne fait pas une optim qui vu d'un humain est
pourtant évidente ... Mais ok c'est assez rare.
Oui, de plus en plus rare. Tellement rare que de toute façon un
compilateur bien utilisé produit désormais de toute façon un code bien
plus efficace qu’un code réalisé immédiatement en assembleur.
Salut Í tous”¯!
Le 22/02/2021 Í 16:51, Gaëtan PERRIER a écrit :Il y a aussi des cas o͹ le compilo ne fait pas une optim qui vu d'un humain est
pourtant évidente ... Mais ok c'est assez rare.
Oui, de plus en plus rare. Tellement rare que de toute façon un
compilateur bien utilisé produit désormais de toute façon un code bien
plus efficace qu’un code réalisé immédiatement en assembleur.