![]() |
Emploi
|
![]() |
Start-up
|
![]() |
Evénements 01 | ![]() |
Avis d'expert | ![]() |
Vidéos | ![]() |
Indicateurs
|
![]() |
Distribution
|
![]() |
Telecharger Pro
|
![]() |
Livres blancs | |||||||||||||||||||||












Au début du mois de février, Gartner a tiré la sonnette d'alarme. Dans un communiqué, le cabinet d'analyse explique que la multiplication des cœurs de calculs dans les serveurs va trop vite, que les logiciels ne sont pas encore prêts pour utiliser une telle capacité. “ L'impact [des machines multicœurs] est similaire à celui d'un moteur Ferrari dans un go-cart. La puissance est là, mais son exploitation est très limitée car le design n'est pas approprié ”, explique Carl Claunch dans ce communiqué.
Ainsi, selon l'analyste de Gartner, il sera possible, en 2009, d'avoir des serveurs à 256 unités de calculs (processeurs à 8 cœurs, multiplié par 32 sockets), alors que les logiciels de virtualisation ne pourront pas en gérer plus de 64.
Mais le problème du multicœur ne se limite pas seulement aux serveurs. Les postes de travail aussi deviennent multicœurs, tirant dans leur sillage l'ensemble de l'industrie logicielle. Malheureusement, selon un sondage Evans Data, seuls 3 % des développeurs ont, durant les six derniers mois de 2008, introduit dans leur code des instructions permettant de gérer le parallélisme, ce qui est trop peu.
“ C'est un vrai point de rupture dans l'histoire informatique, estime Eric Vernié, en charge des relations techniques avec les développeurs chez Microsoft. Avec le développement séquentiel, la loi de Moore s'appliquait sans problème, et le développeur pouvait aisément profiter du gain de puissance. Avec les machines multicœurs, ce gain est beaucoup plus difficile à obtenir. ”
En effet, si l'on veut qu'un logiciel tire parti d'une plate-forme multicœur, il faut généralement le réécrire. Il faut identifier les parties que l'on peut faire tourner en parallèle et introduire les instructions pour gérer les différents fils d'exécution (threads) au niveau des unités de calculs (allocation mémoire, répartition des tâches, etc.). “ C'est assez difficile à réaliser et à déboguer. Jusqu'à présent, ce domaine de la programmation était plutôt réservé aux experts du calcul scientifique. Aujourd'hui, même des développeurs chevronnés ont des difficultés à mettre en œuvre la “parallélisation” ”, précise Eric Vernié.
Le problème, c'est que l'on n'a plus vraiment le choix. La course aux gigahertz n'est physiquement plus tenable, et les ordinateurs optiques ou quantiques n'en sont qu'à leurs débuts. A moyen terme, les gains de performances dans les logiciels passeront forcément par l'exécution parallèle. Intel, d'ailleurs, a bien compris l'urgence de la situation. Il prépare une gamme d'outils baptisée Parallel Studio. Destinés à aider les développeurs dans la conception de leurs programmes, ces outils sont actuellement en version bêta et devraient être disponibles en version finale au deuxième trimestre.
De son côté, Microsoft compte intégrer de nombreux nouveaux outils dans Visual Studio 10, qui devrait sortir d'ici à la fin de l'année. L'éditeur proposera une programmation par “ tâches ”. Il s'agit d'une classe qui permettra de manipuler les fils d'exécution de manière plus abstraite et donc plus confortable. “ La programmation par threads est très proche du matériel, ce qui n'est pas vraiment compatible avec les langages de haut niveau ”, souligne Eric Vernié.
Bref, la balle est maintenant dans le camp des développeurs.
















