Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la...

6
IBM Software Des techniques de développement multicoeur de pointe pour la nouvelle génération de systèmes électroniques Electronique Rational

description

 

Transcript of Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la...

Page 1: Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la nouvelle génération des systèmes électroniques

IBM Software

Des techniques de développementmulticoeur de pointe pour la nouvellegénération de systèmes électroniques

ElectroniqueRational

Page 2: Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la nouvelle génération des systèmes électroniques

2 Des techniques de développement multicoeur de pointe pour la nouvelle génération de systèmes électroniques

IntroductionLa miniaturisation reste le moteur de l’industrieélectronique. Les dimensions des facteurs de forme desappareils et de leurs composants de base se réduisent au furet à mesure de l’amélioration des capacités et desperformances.

Les appareils électroniques deviennent aussi des élémentsd’un écosystème fortement interconnecté du fait des liens decommunication qui viennent le compléter. Les constructeursde matériel électronique adoptent des processeursmulticoeur, un système de traitement composé de deux ouplusieurs cœurs indépendants,1 pour faire profiter de cesprogrès à leurs produits de nouvelle génération.

Avec l’expansion continue des processeurs multicoeur dansles matériels électroniques - PC, téléphones portables, jeuxélectroniques, équipement de réseau, systèmes de régulationindustrielle et maintenant l’équipement médical – lesexigences du développement logiciel pour ces systèmes sontde première importance dans l'industrie de l'électronique.Les avantages des architectures multicoeur sont nombreux :meilleure performance, une moindre consommationd'énergie, des coûts réduits et une plus grande flexibilité,mais ne sont véritablement dégagés qu'à la condition dedévelopper le logiciel adapté. De nombreux développeurs delogiciel dans l’industrie de l’électronique actuelle manquentde compétences pour élaborer un logiciel optimisé pour lemulticoeur. La complexité des architectures multicoeur peutaussi avoir une croissance exponentielle lorsque le nombrede cœurs passe de deux à quatre jusqu’à trente-deux cœurs ;autrement dit, les moyens traditionnels de développementne peuvent plus évoluer. La seule façon de traiter lacomplexité consiste à automatiser le système et adopter unlangage multi-niveaux qui permet d’automatiser ledéveloppement du logiciel sur différents noyaux. Le délai decommercialisation étant un facteur de différenciationcritique dans l’industrie de l’électronique, tenir les délaislimite de mise sur le marché passe par l’utilisation d’un codesource logiciel existant dans l'organisation. Il s'agit toutefois,dans la plupart des cas, d'un code en langage source mono-cœur, non optimisé pour une technologie multicoeur.Ce Livre blanc IBM® Rational® traite des méthodes dedéveloppement de pointe des logiciels qui permettent à vos

équipes développement de tirer parti des nouvellestechnologies multicoeur, ainsi que d’un système automatisépermettant de réutiliser le logiciel à noyau unique pour dessystèmes multicoeur, ce qui vous permet à la fois d'être à lapointe de votre secteur et de réaliser des économies detemps et d'argent de façon drastique par réutilisation dessystèmes existants.

Les perspectives offertes par lemulticoeurLa tendance est à l’amélioration des performances et auxéconomies d'énergie, à la réduction des coûts sur les plates-formes informatiques utilisées pour fabriquer des produitsélectroniques de pointe. Il a été de tradition de pousser lesprocesseurs pour améliorer les performances en augmentantle nombre de transistors sur une microplaquette et lafréquence de l’horloge, même en remettant en question la loide Moore.2 La tendance ne s’est pas inversée, mais pour faireun véritable bond en avant en termes de gestion desperformances et de puissance, il faut innover dans le domainedes technologies multicoeur.

Les systèmes multicoeur sont économes en énergie etfonctionnent généralement à des fréquences d’horloge pluslentes, ce qui permet d'améliorer nettement la durée de viedes batteries et de réduire la production de chaleur. Lestempératures de fonctionnement des refroidisseurs signifientque les entreprises peuvent faire appel à des groupesrefroidisseurs sans ventilateurs, plus silencieux, à meilleurrendement énergétique. Il est possible d'adopter des appareilsdont les facteurs de formes sont plus petits, ce qui réduit lenombre de processeurs distincts en faveur d'un nombreréduit de processeurs multicoeur. Les environnementsmulticoeur offrent aussi la possibilité de disposer d’unvéritable système de fonctionnement multitâche etd'améliorer très nettement les performances des applicationspar rapport à des environnements monocoeur, qui peuventatteindre très vite le seuil d’utilisation d’une unité centrale.Une véritable mise en parallèle est maintenant possiblelorsqu'on gère une charge croissante d'applications à fortepuissance. L’équilibrage des charges et la séparation de lafonctionnalité du système avec les technologies multicoeurpermettent en outre d’améliorer la robustesse et la sécuritédu système.

Page 3: Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la nouvelle génération des systèmes électroniques

3IBM Software

communication inter-tâches et l’affectation des tâchescentrales deviennent des facteurs de réussite essentiels pourle développement de l'applicatif. Il importe de plus en plusde réutiliser toutes les tâches et tous les composants dessystèmes à forte puissance logicielle.

Il faut faire appel à des outils de refactorisation quiréorganisent les applications existantes pour les fairetourner sur la nouvelle architecture multicoeur afin de tirerparti des améliorations des performances de base del'architecture parallèle et, surtout, afin d'assurer leur bonfonctionnement. Ce qui a tourné sans problème et en toutesécurité sur un système monocoeur, même avec un systèmed'exploitation multitâches, pourrait s'avérer défectueux,voire dangereux dans l’architecture parallèle proposé par unsystème multicoeur.

Le déboguage et les tests s’avèrent encore plus vitaux lorsdu développement d’un logiciel vers un système multicoeur.Les techniques traditionnelles de déboguage au niveau descodes sources et d’essais en phase finale ne peuvent évoluerdans la plupart des cas vers des environnements multicoeur.De nouvelles techniques et de nouveaux environnements detests s’avèrent nécessaires pour assurer le bon fonction-nement du logiciel et le niveau de fonctionnalité requis.

Les systèmes IBM Rational pour évoluervers le multicoeurNous recommandons trois méthodes pour undéveloppement efficace du système multicoeur :

• Etudier les options possibles pour évaluer les solutionsalternatives ;

• Utiliser le logiciel existant pour accélérer ledéveloppement ;

• Automatiser la création du logiciel pour améliorer laqualité.

Etudier les options possibles pour évaluer les solutionsalternatives

Réutiliser simplement un logiciel existant pour l'adapter à unprocesseur multicoeur peut en fait aboutir à le faire tournerà la même vitesse, voire plus lentement.3 Ceci est dû au faitque les noyaux actuels sont généralement plus lents, pris

Des PC et des stations de travail aux smartphones etportables haut de gamme, la demande des utilisateurs pourdes performances, une durée de vie des batteries enconstante amélioration et des fonctions avancées a conduitles fabricants à créer et livrer des produits faisant appel àdes technologies multicoeur. La prochaine générationd’appareils électroniques personnels et de produits plusintelligents fera appel à des environnements multicoeurpour offrir une connectivité, une réactivité, une facilitéd'utilisation et des applications à forte productivité encoreaméliorées à une clientèle de plus en plus férue de nouvellestechnologies. Le logiciel sera l’élément vital pour tenir lespromesses du multicoeur, et la réussite ou l’échec reposevisiblement sur l’équipe du logiciel embarqué.

Les défis à relever avec le multicoeurLes promesses offertes par les technologies multicoeur sontsynonymes de coûts et de risque importants pour leséquipes développement actuelles. Les environnementsmulticoeur complexifient encore plus la conception et lafourniture de produits et les applications à forteconcentration de logiciels qui les pilotent. Il faut faire deschoix concernant la distribution des ressources et desfonctionnalités, affectant l'architecture des produits. Pourles concepteurs de systèmes, les décisions sur le nombre réelde processeurs, de noyaux requis, les caractéristiques dusystème d’exploitation (symétrique ou asymétrique) etl’intergiciel sont plus difficiles à prendre. Côté logiciel, lesconcepteurs doivent tenir compte des nouveaux problèmesrelatifs au découpage des applications, à la communicationentre noyaux et entre tâches, et l’évolutivité du modèle dansun système multicoeur. Les fonctions du(des) système(s)d’exploitation et l’intergiciel potentiel utilisés rendentencore plus complexe la conception du logiciel dans sonensemble.

Les entreprises qui passent à une technologie multicoeurvont devoir faire évoluer l’ensemble des compétences deleurs équipes de conception de logiciels. La mise enparallèle doit devenir la norme, il faut modifier la méthodede construction de leurs applications pour tirer pleinementparti de l’architecture parallèle disponible dans unenvironnement multicoeur. Les critères relatifs à une pluslarge utilisation de nombreuses tâches, des systèmes de

Page 4: Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la nouvelle génération des systèmes électroniques

4 Des techniques de développement multicoeur de pointe pour la nouvelle génération de systèmes électroniques

individuellement, que celui du processeur d'origine. Cela sevérifie notamment par le fait que les données partagéespeuvent ralentir la communication. Toute l’applicationpourrait même tourner à la vitesse d’un noyau unique.L’étude des différentes options possibles est essentielle pourévaluer des solutions alternatives et faire en sorte que l'onobtiendra les améliorations souhaitées en termes deperformance, de vitesse et d'utilisation des ressources.

La modélisation de l’architecture logicielle de votre produitet la création de différentes fonctions afin qu’il puissetourner sur plusieurs noyaux sont vitales pour le succès desa mise en œuvre. Les tâches actuelles sont appliquées auxnoyaux, auxquelles viennent s’ajouter des tâchessupplémentaires, si nécessaire. La modélisation vous permetaussi de mieux appréhender la façon d’optimiser lescommunications entre les tâches et les opérations intégréesdans vos applications.

Une autre méthode clé consiste à simuler le modèle quevous avez créé afin de vérifier le bon fonctionnement del’ensemble comme prévu. Sans cette simulation, il vous fautespérer que le logiciel fonctionnera.

Lors de l’étude des différentes options possibles, le modèlevous permet de documenter les raisons pour lesquelles vousavez pris certaines décisions. Il importe aussi de comparervotre modèle aux spécifications d’origine. Comprendre lesaspects en temps réel des exigences vous permet de déciderde la nature des tâches à mettre en correspondance avecchaque noyau. Par exemple, il est possible que vous n’ayezpas besoin de prévoir l’interface utilisateur du logiciel surles mêmes noyaux que les composants de contrôle en tempsréel ou de contrôle critique.

Il importe de mener l’étude des différentes options possiblespour comprendre les fonctions de quel élément de votrelogiciel doivent passer sur certains noyaux. A défaut, vousne pourrez pas tout simplement évaluer les meilleuressolutions alternatives et être certain du fonctionnementoptimal de vos applications sur les noyaux.

Utiliser le logiciel actuel pour accélérer le développement

Votre produit actuel pourrait déjà très bien tourner avec lelogiciel d’application actuel. Il tourne bien dans

l’environnement opérationnel à noyau unique actuel,et pourrait même tourner correctement dans le nouvelenvironnement multicoeur. Il vous faut conserver sa valeuren le réutilisant autant que possible, et vous devez faire ensorte d'améliorer ses performances et le faire évoluer poursatisfaire aux exigences de son nouvel environnement.

Le développement pour un système multicoeur s'appuyantsur une approche orientée-modèle offre d'importantespossibilités de réutilisation de votre logiciel actuel.De la simple visualisation de la structure et des relations dulogiciel et de ses composants jusqu'à la refactorisation ducode source pour optimiser le déploiement vers unenvironnement multicoeur, à une intégration et uneextension dans le cadre d’une conception et d’unearchitecture d’applications tout à fait nouvelles, l'ensembled'outils approprié basé sur des modèles pourra nettementaccélérer vos possibilités de réutiliser le logiciel qui a fait sespreuves dans votre entreprise.

La visualisation de votre logiciel d’applications actueldégage des gains immédiats en vous permettant de mieuxcomprendre la façon dont sont structurés le logiciel et lesinteractions des composants. Elle vous permet d'identifierles critères optimaux et inférieurs à la norme de votremodèle et de générer la documentation du modèle actuelpour déterminer plus facilement la meilleure façon d'utiliserle code source dans le nouveau modèle, sans même devoir lechanger. Ce code source visualisé peut être destiné aunouvel environnement multicoeur et vous pourrez étudiezles différentes options possibles pour décider du meilleursort réservé à l’application, soit sa réutilisation telle quelle,soit sa refactorisation.

Si vous estimez finalement que le logiciel actuel ne tournepas aussi bien dans le nouvel environnement ou que sonarchitecture est insuffisante pour l'environnementmulticoeur, la refactorisation est une solution valable. Enimportant le code source comme éléments modèles, il estpossible de le refactoriser et le régénérer pour la prise encharge d'une architecture d’application de meilleure qualité,adaptée à la technologie multicoeur. La modélisation et lagénération automatique du code source permettent unerefactorisation peu coûteuse du code source existant pour laréécriture de l’application.

Page 5: Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la nouvelle génération des systèmes électroniques

5IBM Software

Enfin, vous pouvez utiliser les composants du logiciel actuelsur de nouveaux modèles et de nouvelles applications crééspour les produits destinés à un environnement multicoeur.Ici également, les capacités de visualisation, derefactorisation et de génération automatique intégrées à unoutil performant de développement basé sur des modèlesrenforcent votre capacité de décision pour leur réutilisation.Il est possible d’écrire de nouvelles applications destinéesaux produits, ce qui réduit la nécessité de reprendre laconception de zéro. Les composants réutilisés peuvent aussise prévaloir d'une bonne réussite avec les produitsantérieurs, leurs comportements sont connus et testés, cequi limite les tâches de nouveaux tests et de nouveaudéboguage par rapport à leur performance dans le cadre dela nouvelle application.

Avec le passage à un nouveau matériel, la réutilisation d’uncode source récupéré est toujours déterminante, car troplaborieuse pour tout réécrire. En outre, disposer d’un codesource déjà testé est vital pour l’exécution d’un projet dansles délais impartis. La visualisation graphique du codesource réutilisable vous aide à comprendre la façon del’adapter à la fonctionnalité que vous ajoutez lors du passageà une nouvelle plate-forme multicoeur.

Automatiser la production d'un logiciel pour améliorer laqualité

Du fait d’un environnement fortement parallèle inhérent àl’environnement multicoeur, les communications entretâches dans une application et entre applications revêtentune importance capitale dans la réussite du développementde ces applications. Les tâches doivent communiquer dansla plupart des situations avec différents systèmes lorsqu’ellespassent du noyau unique de résidence à différents noyaux.Cette forte dépendance à des communications performantesaugmente l’intérêt de disposer de bonnes interfaces entre lestâches et d’utiliser un environnement de modélisationpermettant de générer automatiquement les systèmessupports.

La compréhension, la spécification et l’explorationcomplètes des solutions impliquant le passage à un matérielet des protocoles de communication différents nécessitent

l’utilisation de modèles et la génération automatisée descodes source. Ceci permet de visualiser le modèle et laduplication de ce modèle dans le code source généré. Lorsdu transfert d’une tâche d’un noyau à un autre, il estpossible de régénérer la modification du modèle et de letranscrire dans un code spécifique au nouveau noyau, sinécessaire, même s’il utilise un système d'exploitationdifférent ou s'il doit utiliser un protocole différent pourcommuniquer à des tâches sur le noyau d'origine. Cecinécessite généralement un codage manuel du changement,mais pour une application modélisée, ce changements'opère normalement par simple affectation des fonctions àl'aide des capacités de génération automatique d'un outil dedéveloppement basé sur un modèle prenant en compte lereste de la conversion. A chaque phase du développement,la modélisation et la génération du code source sont d'uneimportance vitale pour aider les développeurs à tester etdévelopper leurs applications multicoeur. Ceci se vérifienotamment sur les marchés sensibles aux délais, commel’industrie de l’électronique.

ConclusionVu la tendance à commercialiser des produits innovants etdifférenciés dans des délais plus courts, l’industrie del’électronique dans son ensemble adoptera de plus en plus lesystème informatique multicoeur afin de tirer les bénéficesd'une meilleure performance, d’une plus faibleconsommation d’énergie, d’une plus longue durée de vie desbatteries, d’une réduction des coûts et d’une plus grandesouplesse. Mais ces retombées bénéfiques impliquentobligatoirement une architecture du logiciel correspondantadaptée à la technologie multicoeur. On peut utiliserplusieurs méthodes de pointe pour simplifier et accélérer ledéveloppement logiciel pour le multicoeur. Ledéveloppement basé sur des modèles permet auxconcepteurs de logiciels de mener des études sur lesdifférentes options possibles de la technologie multicoeur,de visualiser et refactoriser le code source pour assurer unemeilleure réutilisation, et générer automatiquement le codesource en fonction de la configuration du matériel et desprotocoles de communication utilisés.

Page 6: Rational France - Livre Blanc - Des techniques de développement multicoeur de pointe pour la nouvelle génération des systèmes électroniques

Pour en savoir plus…Sur les techniques de développement multicoeur, contactezvotre représentant ou votre chargé d’affaires IBM,ou visitez le site : ibm.com/software/rational/info/multicore/

Les solutions de financement proposées par IBM GlobalFinancing permettent également d’assurer une gestion efficacede la trésorerie, de se protéger de l'obsolescencetechnologique, d'améliorer le coût total de propriété et leretour sur investissement. Nos Services Mondiaux deReconstitution de l’actif financier permettent également detraiter les problèmes liés à l’environnement grâce à denouvelles solutions plus économes en énergie.Pour de plus amples informations sur IBM Global Financing,visitez le site : ibm.com/financing.

© Copyright IBM Corporation 2011

Compagnie IBM France17 Avenue de l'Europe92 275 Bois-Colombes Cedex

Imprimé en FranceMars 2011Tous droits réservés.

IBM, le logo IBM, ibm.com, et Rational sont des marquescommerciales ou des marques déposées d’International BusinessMachines Corporation, aux Etats-Unis, dans d’autres pays, ou aussibien aux Etats-Unis que dans d’autres pays. Si ces termes et d'autrestermes IBM de marques commerciales sont signalés à leur premièreapparition dans la présente publication par un symbole de marquedéposée (® ou ™), ces symboles indiquent des marques déposées oudes marques commerciales relevant du droit coutumier des Etats-Unis, qui sont la propriété d’IBM à la date de publication du présentdocument. Il est possible que ces marques commerciales soient aussides marques déposées ou relevant du droit coutumier dans d’autrespays. Une liste actuelle des marques commerciales IBM estdisponible sur Internet à la page « Informations sur les droits dereproduction et les marques commerciales » sur le siteibm.com/legal/copytrade.shtml

D’autres noms de sociétés, de produits ou de services peuvent êtredes marques commerciales ou des marques de service de tiers.

Les renvois dans la présente publication à des produits ou desservices IBM n’impliquent pas l’intention d’IBM de les rendreaccessibles à tous les pays où opère IBM.

Les informations contenues dans cette publication sont donnéesuniquement à titre indicatif. En dépit de tous les efforts mis en œuvrepour vérifier l’exhaustivité et l’exactitude des informations contenuesdans cette publication, elles sont fournies « telles que d’origine »sans garantie d'une quelconque nature, expresse ou implicite.Ces informations sont également basées sur les programmes et lastratégie produits actuels d'IBM, susceptibles d'être modifiés parIBM sans préavis. IBM ne sera pas tenu responsable du préjudicecausé par l’utilisation ou lié à l’utilisation de ce document ou de toutautre documentation. Aucun élément contenu dans la présentepublication n'est destiné, ni n'a pour effet de créer des garanties oudes représentations de la part d’IBM (ou de ses fournisseurs oudonneurs de licence), ou d’altérer les termes et conditions du contratde licence en vigueur régissant l'utilisation des logiciels IBM.

1 http://en.wikipedia.org/wiki/Multicore_processor

2 http://en.wikipedia.org/wiki/Moore’s_law

3 http://www.forbes.com/2009/11/23/google-microsoft-programming-technology-cio-network-multicore-hardware.html

RAW14209-FRFR-00

Recyclable, merci de recycler