Le plus grand défi pour la programmation aujourd'hui est représenté par le multi-coeur (lorsque les CPU ont plusieurs coeurs, ce qui se généralise dans tous les PC et serveurs) et le 'many-core' (lorsque l'application tourne sur des puces de nature différente, par exemple des CPU et des GPU, ce qui commence à se généraliser dans le monde du calcul haute performance). Or jusqu'à présent, Microsoft n'avait pas franchement pris le problème à bras le corps. Voilà qui est réparé : l'éditeur propose de tester Axum, un langage spécifiquement conçu pour réaliser des applications parallèles, capables de s'exécuter dans des configurations multi-coeurs et 'many-cores'. Axum, explique sur son blog Soma Somasegar, vice-président senior responsable de l'entité développement chez Microsoft, doit permettre à des développeurs .Net de concevoir facilement de telles applications, le framework Axum gérant lui-même, par exemple, les problématiques de parallélisme. Parréliser les calculs entre CPU et GPU augmenterait les performances de 30% Utilisable dès à présent avec Visual Studio 2008, Axum n'en est encore qu'à un stade expérimental : Microsoft ne s'engage pas à sortir le produit et a fortiori ne donne aucune date ; ses concepteurs cherchent pour l'heure à valider leur modèle en faisant appel à la communauté des utilisateurs. La programmation parallèle pour multi-coeur et 'many-core' est aujourd'hui un marché de niche, mais prometteur. Le Français Caps Entreprise, issu du projet Caps de l'Inria de Rennes, s'est ainsi spécialisé dans le 'many-core' pour le calcul haute-performance. Caps s'est aussi donné pour objectif de cacher la complexité aux développeurs, mais a pris pour ce faire une autre voie : sa boîte à outils prend le code source original et l'annote avec des directives qui permettront de distribuer les calculs. Selon Caps, paralléliser les calculs sur un processeur classique (CPU) et un coprocesseur graphique (GPU) multiplie par 30 les performances par rapport à l'exécution du code sur un CPU seul. Alors qu'aujourd'hui, les capacités de calcul parallèles des machines sont complètement ignorées par les applications.