{"id":75,"date":"2013-01-03T11:02:09","date_gmt":"2013-01-03T09:02:09","guid":{"rendered":"http:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/?p=75"},"modified":"2013-09-25T11:04:44","modified_gmt":"2013-09-25T09:04:44","slug":"iooss-tuilagesem","status":"publish","type":"post","link":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/iooss-tuilagesem\/","title":{"rendered":"Tuilage s\u00e9mantique"},"content":{"rendered":"<h2>Tuilage s\u00e9mantique<\/h2>\n<h5>Vendredi 11 janvier, Salle de r\u00e9union LUG 2<\/h5>\n<p>Guillaume Iooss<\/p>\n<p><strong>R\u00e9sum\u00e9:<\/strong><\/p>\n<blockquote><p>\nCertains programmes d\u2019alg\u00e8bre lin\u00e9aire (ou de th\u00e9orie des graphes) manipulant des scalaires poss\u00e8dent une version alternative manipulant des matrices, et utilisant des op\u00e9rations matricielles \u00e0 la place des op\u00e9rations scalaires. Cette version (block\u00e9e) poss\u00e8de une structure identique \u00e0 la version scalaire, tout en ayant une granularit\u00e9 plus important que la version initiale (scalaire) du programme.<\/p>\n<p>On cherche donc \u00e0 formaliser la transformation s\u00e9mantique qui passe d\u2019un programme scalaire \u00e0 un programme block\u00e9, nomm\u00e9e &#8220;tuilage s\u00e9mantique&#8221;. Cette transformation peut \u00eatre vu comme un blockage des donn\u00e9es en matrices, puis un d\u00e9coupage s\u00e9mantique des instructions d\u2019un programme, afin de gagner en localit\u00e9. Ses conditions d\u2019applicabilit\u00e9s diff\u00e9rent d\u2019un tuilage conventionnel: quelques (rares) applications peuvent donc \u00eatre tuilable s\u00e9mantiquement, tout en admettant des d\u00e9pendances ne permettant pas un tuilage conventionnel.<\/p>\n<p>Plusieurs formalisations possibles de cette transformation sont en cours d\u2019exploration: * Une premi\u00e8re possibilit\u00e9 consiste \u00e0 distinguer les op\u00e9rations selon les blocs de donn\u00e9es utilis\u00e9s, afin de les isoler pour former des op\u00e9rations matricielles.On essaye donc d\u2019arriver sur un programme bloqu\u00e9 par transformations s\u00e9mantiques successives du programme scalaire initial. * La seconde possibilit\u00e9 (plus brutale) consiste \u00e0 substituer les donn\u00e9es et op\u00e9rations scalaires du programme initial par des donn\u00e9es et des op\u00e9rations matricielles &#8220;correspondantes&#8221; pour obtenir un programme bloqu\u00e9 candidat. Puis, il nous reste plus qu\u2019\u00e0 essayer de prouver l\u2019\u00e9quivalence entre le programme bloqu\u00e9 obtenu et la version scalaire initiale.<\/p>\n<p>Dans les deux approches, un algorithme d\u2019\u00e9quivalence de programme est utilis\u00e9 (dans le premier cas, pour reconna\u00eetre les op\u00e9rations matricielles des blocks d\u2019op\u00e9rations que l\u2019on forme \/ dans le second cas, pour prouver l\u2019\u00e9quivalence du programme scalaire avec le programme block\u00e9). En particulier, un tel algorithme doit \u00eatre capable de g\u00e9rer les propri\u00e9t\u00e9s d\u2019associativit\u00e9 et de commutativit\u00e9 d\u2019un op\u00e9rateur sur un nombre param\u00e9trique de terme. Nous pr\u00e9senterons donc une extension de l\u2019algorithme de Barthou-Feautrier-Redon afin de g\u00e9rer (partiellement) de tels cas.<\/p>\n<\/blockquote>\n<p><!--Ne pas oublier les tags (mots-clefs, en bas \u00e0 droite et de bien mettre un nom correct dans le permalink en haut--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tuilage s\u00e9mantique Vendredi 11 janvier, Salle de r\u00e9union LUG 2 Guillaume Iooss R\u00e9sum\u00e9: Certains programmes d\u2019alg\u00e8bre lin\u00e9aire (ou de th\u00e9orie des graphes) manipulant des scalaires poss\u00e8dent une version alternative manipulant des matrices, et utilisant des op\u00e9rations matricielles \u00e0 la place &hellip; <a href=\"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/iooss-tuilagesem\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[13,15,14,16,64],"class_list":["post-75","post","type-post","status-publish","format-standard","hentry","category-wg","tag-compsys","tag-polyedres","tag-transformation-de-programmes","tag-tuilage-semantique","tag-wg"],"_links":{"self":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/posts\/75","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/comments?post=75"}],"version-history":[{"count":2,"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/posts\/75\/revisions"}],"predecessor-version":[{"id":78,"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/posts\/75\/revisions\/78"}],"wp:attachment":[{"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/media?parent=75"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/categories?post=75"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ens-lyon.fr\/LIP\/COMPSYS\/wp-json\/wp\/v2\/tags?post=75"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}