Accélération des avancées algorithmiques par rapport au matériel

14

Je me souviens avoir vu une étude ou un article il y a quelque temps affirmant que la plupart des accélérations observées dans les programmes informatiques au cours des dernières décennies provenaient de meilleurs algorithmes plutôt que de matériel plus rapide. Quelqu'un connaît-il l'étude ou l'article?

John
la source
8
Probablement un meilleur ajustement pour cs.stackexchange.
Yuval Filmus
il y a en effet un grand changement de paradigme au cours des dernières années par rapport à la loi de Moores, aux vitesses d'horloge et au parallélisme, qui a été couvert dans de nombreux articles / articles ....
vzn

Réponses:

8

c'est une question involontairement complexe. cette idée que les gains logiciels ont dépassé les gains matériels est apparemment enracinée dans un rapport réel du gouvernement, mais (comme votre question l'indique) peut-être approchant le statut de légende urbaine mineure en raison d'être mal comprise ou mal interprétée. les titres récapitulatifs / sonores ne correspondent pas vraiment au point soulevé dans le rapport.

voir [1] ou [2] qui indique

Un rapport d'un groupe indépendant de conseillers scientifiques et technologiques à la Maison Blanche, publié en décembre dernier, a cité des recherches montrant que les gains de performances dans les tâches informatiques résultant des améliorations des algorithmes logiciels dépassent souvent de loin les gains attribuables à des processeurs plus rapides.
...
Mais le rapport consultatif de la Maison Blanche a cité des recherches, y compris une étude des progrès sur une période de 15 ans sur une tâche de planification de la production de référence. Au cours de cette période, la vitesse de réalisation des calculs s'est améliorée d'un facteur 43 millions. Selon la recherche de Martin Grotschel, scientifique et mathématicien allemand, un facteur d'environ 1 000 était attribuable à des vitesses de processeur plus rapides. Pourtant, un facteur de 43 000 est dû à l'amélioration de l'efficacité des algorithmes logiciels.

mais la question du logiciel contre le matériel est très loin de cette simplification unidimensionnelle, beaucoup plus complexe, et le blog Lohrs l'a plus précise - le logiciel et le matériel forment une sorte de fusion symbiotique yin-yang et les deux ont progressé de manière très significative, voire stupéfiante les décennies.

mise en garde / petits caractères: on ne peut pas prendre des gains individuels dans des algorithmes logiciels particuliers, qui dans certains cas ont été très importants, et généraliser cela dans tous les algorithmes.

la citation réelle du rapport est à la page 71:

Encore plus remarquable - et encore moins largement compris - est que dans de nombreux domaines, les gains de performances dus aux améliorations des algorithmes ont largement dépassé même les gains de performances spectaculaires dus à la vitesse accrue du processeur. Les algorithmes que nous utilisons aujourd'hui pour la reconnaissance vocale, pour la traduction en langage naturel, pour le jeu d'échecs, pour la planification logistique, ont évolué de façon remarquable au cours de la dernière décennie. Il est cependant difficile de quantifier l'amélioration, car elle dépend autant de la qualité que du temps d'exécution.

donc ce rapport du gouvernement est très recherché et poli, la revendication de base des gains massifs dus aux avancées théoriques du logiciel dans certains domaines est correcte, et promeut la recherche (théorique / algorithmique) en partie sur cette base.

cependant, il y a plusieurs autres phénomènes / tendances / changements fondamentaux / massifs nouveaux / récents au cours des dernières années ou ce que Intels Grove appelle des "points d'inflexion" qui se produisent dans la conception matérielle vs logicielle. alias "gamechangers":

  • la montée en puissance du calcul intensif "Exascale" peut ne pas être aussi facilement réalisée que "Petascale" en raison des contraintes de mise à l'échelle matérielle
  • les vitesses d'horloge, moteur principal des gains de vitesse antérieurs, se sont stabilisées (en partie à cause des contraintes de chaleur / refroidissement)
  • le matériel subit un virage massif vers des appareils moins gourmands en calcul et plus économes en énergie, par exemple mobiles, centres de données / virtualisation / cloud, etc.
  • l'amélioration du parallélisme dans les logiciels et le matériel (par exemple, "multicœur") devient donc plus critique pour l'amélioration des performances (où la théorie a beaucoup à dire sur la façon de paralléliser les algorithmes)

[1] skeptic.se, les progrès dans les algorithmes dépassent-ils les progrès dans le matériel

[2] Le progrès logiciel bat le blog Moores law NYT de Lohr

[3] RAPPORT AU PRÉSIDENT ET AU CONGRÈS CONCEVOIR UN AVENIR NUMÉRIQUE: RECHERCHE ET DÉVELOPPEMENT FINANCÉS FÉDÉRALEMENT EN RÉSEAU ET TECHNOLOGIE DE L'INFORMATION Déc 2010

vzn
la source
Addenda. il existe probablement de bons (contre) exemples d'algorithmes importants qui n'ont pas avancé du tout en termes d'efficacité des implémentations au cours des décennies. des idées? un domaine candidat pourrait être les algorithmes matriciels qui ne sont pas parallélisables ou d'autres algorithmes qui semblent être intrinsèquement non parallélisables ... aussi, certains algorithmes ont subi des améliorations théoriques dans une complexité de limite inférieure, mais les algorithmes ne sont pas réellement mis en œuvre ou ne sont pas réalisables pour des applications typiques -entrées dimensionnées etc ... par exemple multiplication matricielle?
vzn
1
Ceci est une excellente réponse - pleine de détails, de nuances et de discussions bien informées!
Joshua Grochow