{"id":1043,"date":"2020-06-18T20:25:36","date_gmt":"2020-06-18T11:25:36","guid":{"rendered":"https:\/\/ovhpa.net\/?page_id=1043"},"modified":"2020-10-22T23:09:35","modified_gmt":"2020-10-22T14:09:35","slug":"programming","status":"publish","type":"page","link":"https:\/\/ovhpa.net\/fr\/programming\/","title":{"rendered":"Programmation"},"content":{"rendered":"\n<p style=\"text-align: justify;\" align=\"justify\">En fonction de votre cible (voir la figure plus bas), nous fournissons diff\u00e9rents niveaux d\u2019optimisation. En revanche, tous les objectifs ne sont pas ind\u00e9pendants. Par exemple, l\u2019optimisation apport\u00e9e ciblant les superordinateurs b\u00e9n\u00e9ficie g\u00e9n\u00e9ralement \u00e9galement aux clusters et, a un niveau moindre, aux ordinateurs de bureau suffisamment performants. De fa\u00e7on similaire les applications destin\u00e9es \u00e0 l\u2019internet des objets (I.O.T.) sont souvent pr\u00e9par\u00e9es sur des plateformes embarqu\u00e9es \u00e0 des fins de test. R\u00e9cemment, des solutions unifi\u00e9es d\u2019optimisation sur plusieurs plateformes ont \u00e9t\u00e9 d\u00e9velopp\u00e9es et utilis\u00e9es avec succ\u00e8s. N\u00e9anmoins, \u00e0 OVHPA \u2013 High Performance Applications, nous pensons qu\u2019il y a toujours un b\u00e9n\u00e9fice \u00e0 optimiser chaque cible individuellement.<\/p>\n\n\n\n<p style=\"text-align: justify;\" align=\"justify\">Tout d\u2019abord, l\u2019optimisation des performances d\u2019une application sur une architecture donn\u00e9e, va d\u00e9pendre de fa\u00e7on explicite de ce choix de mat\u00e9riel. Pour les superordinateurs ainsi que les clusters, cela signifie que, non seulement le processeur (CPU) et de ses \u00e9ventuels composant vectoriels comme les processeurs graphiques (GPUs), mais aussi la technologie d\u2019interconnexion et sa topologie de r\u00e9seau sont d\u2019une importance critique. Pour les ordinateurs ordinaires et les cibles plus petites, la technologie de r\u00e9seau peut \u00eatre moins importante. L\u2019utilisation de cibles telles que les microcontr\u00f4leurs ou les applications destin\u00e9es \u00e0 l\u2019internet des objets doivent en compromis \u00e9changer de la performance contre une taille de code inf\u00e9rieure, qui deviendra le facteur pr\u00e9pond\u00e9rant de l\u2019optimisation, tandis que pour ces architectures, le code r\u00e9sultant n\u2019est souvent pas portable.<\/p>\n\n\n\n<p style=\"text-align: justify;\" align=\"justify\">Un autre aspect important est la s\u00e9curit\u00e9 de l\u2019application. Pour les superordinateurs et les clusters, cette s\u00e9curit\u00e9 est souvent dispens\u00e9e \u00e0 l\u2019\u00e9chelle du syst\u00e8me tout entier. Cela veut dire que, pour des applications orient\u00e9es performance qui vont s\u2019ex\u00e9cuter sur ces cibles, la seule mesure de s\u00e9curit\u00e9 va \u00eatre de rester \u00e0 jour de toutes les d\u00e9pendances, biblioth\u00e8ques logicielles ou codes tiers. Pour les ordinateurs de bureau, cible traditionnelle des attaques informatiques, la s\u00e9curit\u00e9 doit \u00eatre \u00e0 la mesure des ressources et privil\u00e8ges auxquels l\u2019application aura acc\u00e8s. En fonction du syst\u00e8me d\u2019exploitation, certaines solutions g\u00e9n\u00e9rales existent (par exemple les sandbox) mais ces solutions ne sauraient remplacer un audit en r\u00e8gle du code de vos applications. Alors que les imprimantes et les t\u00e9l\u00e9phones portable font l\u2019objet d\u2019un nombre croissant d\u2019attaques informatiques, il para\u00eet probable que le centre d\u2019int\u00e9r\u00eat de ces attaques va se porter sur les syst\u00e8mes embarqu\u00e9s et I.O.T. Il y a beaucoup de raison pour cela, mais une des plus importantes est que les utilisateurs n\u2019envisagent g\u00e9n\u00e9ralement pas ces syst\u00e8mes comme des sujets de pr\u00e9occupation au niveau de la s\u00e9curit\u00e9. Il est ais\u00e9 de comprendre qu\u2019une box internet puisse \u00eatre la cible d\u2019attaque, mais qui va se m\u00e9fier de la montre ou la brosse \u00e0 dent connect\u00e9e&nbsp;? Pourtant ces objets connect\u00e9s sont des moyens potentiels r\u00e9els de subtiliser des donn\u00e9es bancaires ou un mot de passe wifi. C\u2019est pourquoi il est toujours important de planifier les capacit\u00e9s de votre application en fonction de ses besoins&nbsp;: votre syst\u00e8me I.O.T. a-t-il r\u00e9ellement besoin de transmettre des donn\u00e9es \u00e0 une autre application, et si oui lesquelles&nbsp;? Devons-nous stocker les mots de passes sur l\u2019appareil ou utiliser des signatures, comment stocker les clefs de chiffrement sur un espace limit\u00e9&nbsp;? Pour ces syst\u00e8mes toutes ces questions doivent trouver une r\u00e9ponse avant m\u00eame de passer \u00e0 l\u2019\u00e9tape du code.<\/p>\n\n\n\n<p style=\"text-align: justify;\" align=\"justify\">Dans tous les cas, nous, \u00e0 OVHPA \u2013 High Performance Applications, pensons que la plus importante des \u00e9tapes pour produire une application sure et optimis\u00e9e est d\u2019inspecter intens\u00e9ment et r\u00e9guli\u00e8rement son code&nbsp;:<\/p>\n<ol>\n<li style=\"text-align: justify;\">en produisant un code clair et sans ambigu\u00eft\u00e9, si possible en utilisant des langages d\u00e9claratifs comme le C ou le Fortran, et avec une documentation exhaustive ;<\/li>\n<li style=\"text-align: justify;\">en utilisant des directives d\u2019optimisation claires (et document\u00e9es), en s\u00e9parant autant que possible les diff\u00e9rentes plateformes cibles&nbsp;;<\/li>\n<li style=\"text-align: justify;\">en ne liant l\u2019application qu\u2019\u00e0 des biblioth\u00e8ques logicielles n\u00e9cessaires, et en utilisant seulement les plus \u00e9tablies et les plus r\u00e9guli\u00e8rement maintenues&nbsp;;<\/li>\n<li style=\"text-align: justify;\">en effectuant de nombreux tests avec des utilisateurs diff\u00e9rents, certains n\u2019ayant que peu ou pas de connaissances du fonctionnement de l\u2019application.<\/li>\n<\/ol>\n<p>En essayant de maintenir ces directives simples, et en ayant un support initial r\u00e9actif, votre application ne sera pas seulement optimis\u00e9e et sure, elle sera reconnue pour cela.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"252\" height=\"168\" class=\"wp-image-396 alignnone\" src=\"https:\/\/ovhpa.net\/wp-content\/uploads\/2020\/06\/target-1.gif\" alt=\"\">\n<p>Choisir une architecture cible a de nombreuses cons\u00e9quences<\/p>\n<\/figure>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En fonction de votre cible (voir la figure plus bas), nous fournissons diff\u00e9rents niveaux d\u2019optimisation. En revanche, tous les objectifs ne sont pas ind\u00e9pendants. Par exemple, l\u2019optimisation apport\u00e9e ciblant les superordinateurs b\u00e9n\u00e9ficie g\u00e9n\u00e9ralement \u00e9galement aux clusters et, a un niveau moindre, aux ordinateurs de bureau suffisamment performants. De fa\u00e7on similaire les applications destin\u00e9es \u00e0 l\u2019internet &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/ovhpa.net\/fr\/programming\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Programmation&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","_locale":"fr_FR","_original_post":"https:\/\/ovhpa.net\/?page_id=142","footnotes":""},"class_list":["post-1043","page","type-page","status-publish","hentry","fr-FR"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"twentyseventeen-featured-image":false,"twentyseventeen-thumbnail-avatar":false},"uagb_author_info":{"display_name":"ovhpa","author_link":"https:\/\/ovhpa.net\/author\/ovhpa\/"},"uagb_comment_info":0,"uagb_excerpt":"En fonction de votre cible (voir la figure plus bas), nous fournissons diff\u00e9rents niveaux d\u2019optimisation. En revanche, tous les objectifs ne sont pas ind\u00e9pendants. Par exemple, l\u2019optimisation apport\u00e9e ciblant les superordinateurs b\u00e9n\u00e9ficie g\u00e9n\u00e9ralement \u00e9galement aux clusters et, a un niveau moindre, aux ordinateurs de bureau suffisamment performants. De fa\u00e7on similaire les applications destin\u00e9es \u00e0 l\u2019internet\u2026","_links":{"self":[{"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/pages\/1043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/comments?post=1043"}],"version-history":[{"count":0,"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/pages\/1043\/revisions"}],"wp:attachment":[{"href":"https:\/\/ovhpa.net\/wp-json\/wp\/v2\/media?parent=1043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}