Télécharger




Recherche :

Le développement parallèle avec Intel Parallel Studio 2011
Intel Parallel Studio: simplifier le développement parallèle !

Télécharger l'article en PDF

Alors que les processeurs multi-cores (multi-coeurs) prolifèrent, améliorer les performances logicielles, et mieux utiliser la puissance processeur, demeure un enjeu important pour rester compétitif, surtout pour les applications développées en C ou C++. Mais jusqu’à présent le développement parallèle restait complexe à aborder pour le développeur. Programmez ! vous invite à découvrir en avant-première la nouvelle solution Intel, avec un tout nouveau plug-in Visual Studio, qui va radicalement changer votre vision du développement parallèle.

L’année 2009 sera non seulement l’année de la prolifération en masse des processeurs à 4 cœurs (Quad-Core) et le début des processeurs à 8 coeurs (Octo- Core), mais aussi l’année ou le développeur sera de plus en plus confronté aux performances des applications, de son code source sur ces processeurs. Bref, comment tirer parti des performances pour accélérer les applications Windows ? Les techniques de programmation dite parallèle et le " multi-threading " sont difficiles à maîtriser. Elles requièrent souvent un travail intensif d’apprentissage et de structuration et généralement une refonte partielle ou totale du code. Les outils d’aide à l’implémentation du multi-threading disponiblessur le marché sont rares et encore souvent complexes : Intel propose depuis quelques années des outils et des librairies multi-plates-formes pour la programmation sous C et C++. Jusqu’à présent, ces outils étaient surtout réservés aux développeurs de calculs hautes-performances ou à l’imagerie numérique.

PARALLEL STUDIO : LE PREMIER PAS !

Annoncée en août 2008, la collaboration entre Intel et Microsoft va aboutir cette année au lancement d’une nouvelle série d’outils appelée Intel Parallel Studio (prévue au second trimestre). Celle-ci supportera également la future Concurrency Runtime de Microsoft qui permettra finalement d’avoir une infrastructure commune de gestion des ressources coeurs de processeur pour toutes librairies et langages, que ce soit .net ou natif.
Intel Parallel Studio se présente sous la forme de plug-in comprenant 4 modules distincts (et utilisables séparément) qui permettront d’aborder la programmation parallèle directement sous l’environnement Visual Studio. Aujourd’hui, 3 des 4 modules sont disponibles et prêts à être installés en version bêta sur le CD :
1. Parallel Composer
2. Parallel Inspector
3. Parallel Amplifier
4. Parallel Advisor (disponible ultérieurement)

UNE INSTALLATION SIMPLE ET UNE PARFAITE INTÉGRATION

Les 3 modules sont simples à installer à partir d’un installateur commun et s’intègrent parfaitement dans l’environnement Visual Studio 2005 ou 2008. Chaque module peut-être installé séparément. Après installation, les modules sont disponibles soit directement en barre d’outils [Fig.1]soit par le menu "outils " (" tools "). Partant d’une méthodologie éprouvée de développement parallèle en 4 phases [Fig.2], chaque module s’imbrique dans une de ces phases :
1. Phase " Design " (Parallel Advisor), répondant aux questions par où commencer ? quels segments de code bénéficieront le plus du multi-threading ?
2. Phase " Codage " (Parallel Composer)
3. Phase " Debug " (Parallel Inspector)
4. Phase " Tuning " (Parallel Amplifier)
Tous les modules sont utilisables et compatibles avec le compilateur Microsoft Visual C++ (et aussi avec le compilateur Intel C++).
Parallel Composer complémente Visual Studio avec de nouvelles fonctionnalités et méthodes de multi-threading au niveau applicatif : il comprend un compilateur haute performance C/C++, compatible avec le compilateur Microsoft ainsi que la librairie multimédia Intel Performance Primitives (IPP) et la librairie de multi-threading Threading Building Blocks (TBB). Le compilateur supporte dès à présent le standard OpenMP 3.0, les fonctions lambda, ainsi que les fonctions : autovectorization, auto-parallelization et spawn. La librairie TBB est un élément clé du Composer. Elle offre une nouvelle approche relativement simple du multi-threading basée sur des templates C++, ce qui rend le code aisément portable et très performant. Parallel Inspector est l’outil le plus innovant du trio (en attendant le quatrième outil Parallel Advisor). En principe, il s’agit d’un debugger spécifiquement adapté aux méthodes de développement parallèle. Le but étant de donner confiance au développeur et que son code ne va pas générer des bugs imprévisibles et destructifs. Inspector permet de trouver rapidement et sans failles les erreurs classiques et difficiles à détecter du multi-threading : les " race conditions " et les " deadlocks ". Inspector intègre également un analyseurde mémoire très performant pour détecter les erreurs et les fuites de mémoire. L’outil, très flexible, peut être facilement configuré pour varier l’intensité et la durée des analyses, et permettre ainsi de faire des tests rapides ou bien des tests exhaustifs [Fig.3]. Parallel Amplifier est l’outil d’analyse de la performance et se place dans la 4e phase de la méthodologie (phase de " tuning "). L’outil permet de trouver les goulots d’étranglement et de donner des éléments de réponse à la question cruciale du développement parallèle : est-ce que mon code utilise au mieux les ressources et le potentiel de performance du processeur multi-core ?

Les fonctionnalités de Parallel Amplifier sont multiples et se basent principalement sur des analyses de performance en profondeur au niveau du processeur :
1. Analyse “Hotspot” des segments de code gros consommateur de ressources processeurs.
2. Analyse du niveau de parallélisme (“concurrency analysis”) permettant d’une part de repérer les segments de code qui sont parallèles et ceux qui ne le sont pas, et d’autre part d’identifier les segments de code qui sont exécutés de façon sérielle et limitent ainsi la montée en charge (" scalability "), voir [Fig.4].
3. Analyse de “Locks and Wait” pour détecter les objets de synchronisation et de blocage qui consomment le plus de temps d’attente.

UNE MISE EN OEUVRE PERMANENTE

L’intérêt principal de Parallel Studio réside dans la simplicité d’utilisation et l’intégration dans Visual Studio, ce qui permet une mise en oeuvre permanente tout au long du processus de développement.

EXEMPLE SIMPLE

Prenons l’exemple d’un algorithme de résolution de matrice creuse (en anglais, " sparse matrix solver”) utilisant la méthode par élimination de Gauss (méthode LU); un algorithme classique pour résoudre des problèmes d’éléments finis en mécanique. Après compilation du code en C++, nous utilisons Amplifier pour trouver un " hotspot " éventuel. L’écran de résultats nous montre une utilisation du processeur excessive pour une des fonctions [Fig.5]. Un double-click sur la fonction nous envoie sur les lignes code responsables du " hotspot " : [Fig.6]. Après analyses des matrices, nous changeons le code de la façon suivante :

#pragma omp parallel for private (i,j,k, term, temp)
for (i = 0;i < dimension - 1; i++){
temp = A[i][i];
colindex = (i >> 1) << 1;
for (j = i + 1 ; j < dimension; j++){
term = A[j][i] / temp;
//for (k = i; k < dimension; k++){
for (k = colindex; k < colindex + 2; k++){
A[j][k] = A[j][k] - term * A[i][k];
}
b[j] = b[j] - term * b[i];
}
}

Le résultat est immédiat : [Fig.7]. Un des grands avantages de Parallel Studio est de permettre des analyses comparatives côte-à-côte [Fig.8]. Cet exemple relativement simple montre la facilité d’utilisation de Parallel Studio dans le quotidien de l’utilisateur de Visual Studio. Le parallélisme va devenir une impérative constante et normale dans le processus de développement logiciel. Dans les articles prochains nous aborderons les autres outils plus en détail avec des exemples plus complexes. En attendant, nous vous recommandons d’installer Parallel Studio (ou bien le ou les modules qui vous intéressent) et de commencer immédiatement avec de premières expériences. Plus d’informations sont aussi disponibles en anglais sur le site http://www.go-parallel.com/.

Ralph de Wargny


Actualités

Intel Parallel Studio 2011 Getting Started


Pratique

Supplément C++
Téléchargez gratuitement le supplément de 24 pages, publié en Juillet 2011
Télécharger le PDF

Livre blanc


Téléchargez le Guide Intel Parallel Studio : toutes les infos et les liens ! Pratique, forum, downlaoad, cas clients etc.
Faites évoluer votre code
• Pourquoi passer à la programmation parallèle
• Simplifier le développement parallèle
• La chasse aux bogues parallèles
• Plus de coeurs, plus rapide, plus de montée en charge
• Vous ne reconnaîtrez plus votre C++

Téléchargez le PDF complet
Intel Parallel Studio 2011

Intel propose une nouvelle gamme d'outils de développement d'applications pour profiter du multicore via une programmation parallèle. Il s'agit de l'Intel® Parallel Studio qui d'adresse aux développeurs Windows qui possèdent Visual Studio* C/C++2008. Ce nouvel outil est en fait un ensemble qui réunit , Parallel Advisor pour diagnostiquer le code quant aux possibilités de parallélisation, Parallel Composer pour incorporer du parallélisme à l'aide d'un compilateur C++ Intel et des bibliothèques thread safe, Parallel Inspector pour découvrir des conflits de threading éventuels et Parallel Amplifier pour diagnostiquer le comportement des threads.




Liens
Page d'accueil Intel Parallel Studio
Présentations vidéos

Actu

Pratique


Actu


Distributeurs INTEL

FRANCE

Micro Sigma
+ 33 (1) 55 90 99 16
http://www.microsigma.fr/intel
info@microsigma.fr

Comsoft-SOS Developers
Tel 0825 07 06 07 – 0825 07 06 08 (fax)
www.comsoft-direct.fr/intel
infos@comsoft.fr

ALLYS
+33 (0)1 4763 9344, +33 (0)1 4763 9344
http://www.allys-soft.com
allys@allys-soft.com

Insight France
+33 (1) 30 67 25 00
http://fr.insight.com
linfo.fr@insight.com

RITME INFORMATIQUE
+33 (0) 1.4246.0042, +33 (0) 1.4246.0033
http://www.ritme.com
info@ritme.com

Software Technology Resources
+33 (1) 30 70 61 61
http://http://www.str.fr
contact@str.fr

transtec S.A.R.L.
+33 (0) 3.88.55.16.00, +33 (0) 3.88.55.16.09 (fax)
www.transtec-cluster.com
ccenter@transtec.de


BELGIQUE

ttec Computers B.V.B.A.
+32 (0) 800 93 920, +32 (0) 800 93 921 (fax)
www.transtec-cluster.com
ccenter@transtec.de

SOS Developers
+32 (0800) 74.756, +32 (0800) 74.757 (fax)
http://www.sosdevelopers.com/
benelux@sosdevelopers.com


SUISSE

COMSOL AG
+41 (31) 998.44.11, +041 (31) 998.44.18 (fax)
http://www.comsol.ch/Intel
info@comsol.ch

PC-Ware Systems (Schweiz) AG
+41 41 925 50 50, +41 41 925 51 51 (fax)
http://www.pc-ware.ch
mail@pc-ware.ch

SCIENTIFIC SOLUTIONS
+41 021 711 15 20, +41 021 711 15 21 (fax)
http://www.scientific-solutions.ch
info@scientific-solutions.ch

SOS Software Service GmbH
+41-52-728 07 38; +41-52-720 93 70 (fax)
http://www.sos-software.ch/intel
intel@sos-software.ch

transtec Computer AG
+41 (0) 44/818 47 00, +41 (0) 44/818 47 20 (fax)
www.transtec-cluster.com
ccenter@transtec.de

Programmez.com - 2013 - Tous droits réservés
Développement - WEB - ASP - PHP - C++ - Delphi - Java - Magazines - Ressources - Forum - Télécharger - Video - Emploi - Campus - .Net - Tutoriels

Le présent site Web est édité par Go 02, Sarl inscrite au RCS de Paris sous le N° 411321366 et dont le siège social est au 21 rue de Fécamp 75012 Paris.
Adresse de courrier électronique :diff@programmez.com

Le directeur de la publication du site www.programmez.com est Jean-Claude Vaudecrane en qualité de gérant de la sarl GO 02

Le portail du décideur informatique en entreprise : Solutions & Logiciels