Au moment où Intel multiplie les plates-formes multicoeur (multi core), jusque sous les environnements Apple, au moment où le XML s'impose et où il devient stratégique d'intégrer l'approche du marquage de l'information, Kevin J. Smith, directeur du «Compiler Labs» d'Intel est revenu sur la stratégie logicielle du fondeur.

Au moment où Intel multiplie les plates-formes multicoeur (multi core), jusque sous les environnements Apple, au moment où le XML s'impose et où il devient stratégique d'intégrer l'approche du marquage de l'information, Kevin J. Smith, directeur du «Compiler Labs» d'Intel est revenu sur la stratégie logicielle du fondeur.

Coeurs multiples, mais aussi traitement multiprocessus (multithreading), la puissance des plates-formes impose de revoir l'architecture des logiciels afin de prendre en compte les capacités de parallélisation des applications et d'exploitation des branches (threads) pour des gains de performance qui peuvent atteindre 40%.

Le cycle d'adaptation des applications se déroule en quatre phases : le code source, la compilation, les chemins (parallélisation) et le débogage. Hors le code source, Intel propose des outils pour toutes les autres phases, sous Windows, Linux et désormais Mac OS X, ainsi que des outils d'analyse des performances sous Linux et Windows.

Certains d'entre eux sont intégrés avec Eclipse sous Linux ou Visual Studio .NET sous Windows. Ces outils permettent une analyse des performances, l'introduction des threads dans le design, le débogage des erreurs, et l'optimisation des performances.

Intel VTune analyse les performances, visualise les composants sous forme graphique, montre les chemins critiques.

La parallélisation est quasi automatique pour identifier les algorithmes qu'il faudra modifier, modifier le design du code et introduire les threads. Le modèle de thread sera OpenMP (codéveloppé par Intel), Explicit Threads (pthread, système d'appel, etc.) ou encore Massage Passing (MPI).

La phase de débogage via Intel Debugger apportera les corrections éventuelles en repérant les problèmes potentiels de synchronisation entre les threads.

Enfin, la phase d'analyse des performances avec «Intel Thread Profiler» permettra de s'assurer que les performances d'un thread ou de multiples threads seront optimales en repérant les nœuds de congestion et de blocage.

Bien évidemment, Intel propose des librairies de performance qui fournissent en théorie la meilleure méthode d'optimisation, de parallélisation et de portabilité d'une application.

Intel fournit aussi une librairie de cœurs (kernel) mathématiques pour optimiser les librairies scientifiques, d'ingénierie et d'applications. Mais surtout, les outils du fondeur sont prêts pour le multicoeur.

Les éditeurs sérieux n'ont donc plus d'excuse pour ne pas porter leurs applications sur les environnements multicoeur et multiprocessus!

Un compilateur Intel pour Mac OS X

Avec l'arrivée des technologies Intel sur les ordinateurs Macintosh d'Apple, le fondeur n'a pas oublié d'adapter son offre logicielle au Mac OS X version 10.4.4 et Xcode 2.2.1.

L'intégration de l'IDE Xcode permet l'intégration totale de C++ et l'intégration en mode prévisualisation de Fortran. SSE, SSE2 et SSE3 son «auto vectorisés». La parallélisation automatique est assurée par OpenMP 2.5.

La compatibilité du compilateur et du langage s'étend à GNU compiler 4.0 et suivants, Objective C, C++ Compiler.