{"id":116665,"date":"2018-03-11T10:45:52","date_gmt":"2018-03-11T10:45:52","guid":{"rendered":"https:\/\/www.deberes.net\/tesis\/sin-categoria\/atomic-dataflow-model\/"},"modified":"2018-03-11T10:45:52","modified_gmt":"2018-03-11T10:45:52","slug":"atomic-dataflow-model","status":"publish","type":"post","link":"https:\/\/www.deberes.net\/tesis\/ciencia-de-los-ordenadores\/atomic-dataflow-model\/","title":{"rendered":"Atomic dataflow model"},"content":{"rendered":"<h2>Tesis doctoral de <strong> Vladimir Gajinov <\/strong><\/h2>\n<p>Con el reciente cambio en el dise\u00f1o de los procesadores de prop\u00f3sito general pasando del aumento de frecuencia al incremento del n\u00famero de n\u00facleos, la programaci\u00f3n paralela se ha convertido en importante no solo para la comunidad cient\u00edfica sino tambi\u00e9n para la programaci\u00f3n en general. Este hecho ha enfatizado la importancia de la programabilidad de los modelos actuales de programaci\u00f3n paralela, cuyo objetivo era el rendimiento. Pronto se observ\u00f3 la necesidad de nuevos modelos de programaci\u00f3n, para hacer factible la programaci\u00f3n paralela a toda la comunidad.  transactional memory &#8482; es un ejemplo de dicho objetivo. Supone una gran mejora sobre cualquier m\u00e9todo anterior de sincronizaci\u00f3n en t\u00e9rminos de programabilidad, con una posible reducci\u00f3n del rendimiento como coste. La raz\u00f3n principal de dicha degradaci\u00f3n es el sobrecoste de la ejecuci\u00f3n transaccional. Nuestro trabajo en la paralelizaci\u00f3n del motor del juego quake es un claro ejemplo de este problema. Demostramos que software transactional memory es superior en t\u00e9rminos de programabilidad a los modelos de programaci\u00f3n basados en locks, pero que el rendimiento es entorpecido por el sobrecoste introducido por tm. Mientras tanto, se ha invertido un importante esfuerzo de investigaci\u00f3n para superar dicho problema. Nuestra soluci\u00f3n se dirige hacia la mejora del rendimiento del c\u00f3digo transaccional reduciendo los conflictos con la informaci\u00f3n contenida en las transacciones. La idea se basa en la organizaci\u00f3n del c\u00f3digo en el cual la informaci\u00f3n conflictiva es promocionada a se\u00f1ales del flujo de datos que coordinan la ejecuci\u00f3n de las transacciones.  la contribuci\u00f3n principal de esta tesis es atomic dataflow model (adf), un nuevo modelo de programaci\u00f3n para c\/c++ basado en tareas que integra abstracciones de flujo de datos en el modelo de programaci\u00f3n de la memoria compartida. El modelo adf provee construcciones del lenguaje que permiten al programador la definici\u00f3n del programa como un conjunto de tareas, adem\u00e1s de la definici\u00f3n expl\u00edcita de las dependencias de datos para cada tarea. La informaci\u00f3n de dependencia de la tarea se transmite al runtime de adf, que construye un grafo de tareas que es el que controla la ejecuci\u00f3n de un programa. Adicionalmente, el modelo adf permite que las tareas compartan informaci\u00f3n. La idea principal es que la computaci\u00f3n es activada por el flujo de datos entre tareas, pero que dentro de una tarea la ejecuci\u00f3n ocurre haciendo actualizaciones at\u00f3micas a un estado com\u00fan mutable. Para conseguir este fin, el modelo adf utiliza tm, que garantiza la atomicidad en las modificaciones de la memoria compartida.  la segunda contribuci\u00f3n es dash, el primer conjunto de benchmarks para los modelos de programaci\u00f3n de flujo de datos h\u00edbridos y los de memoria compartida. Dash contiene 11 benchmarks, cada uno representativo de uno de los berkeley dwarfs que captura patrones de comunicaciones y procesamiento comunes en un amplio rango de aplicaciones emergentes. Dash incluye implementaciones secuenciales y de memoria compartida basadas en openmp y tbb que facilitan la comparaci\u00f3n entre los modelos h\u00edbridos de flujo de datos e implementaciones de memoria compartida. Nosotros usamos dash no solo para evaluar adf, sino tambi\u00e9n para compararlo con otros dos modelos h\u00edbridos para identificar sus ventajas.  finalmente, estudiamos la aplicabilidad de dichos modelos h\u00edbridos para la paralelizaci\u00f3n del motor del juego. Mostramos que disminuyen la complejidad de la implementaci\u00f3n paralela, eliminando o reestructurando la sincronizaci\u00f3n expl\u00edcita que es necesaria en las implementaciones de memoria compartida. Tambi\u00e9n se observa una buena escalabilidad y una aceleraci\u00f3n mejor, especialmente en el caso de un ambiente de juego muy cargado. En \u00faltima instancia, sobre una m\u00e1quina con ocho n\u00facleos se ha obtenido una aceleraci\u00f3n del 4.72x comparado con el c\u00f3digo secuencial, y una mejora del 49% sobre la implementaci\u00f3n paralela basada en locks.<\/p>\n<p>&nbsp;<\/p>\n<h3>Datos acad\u00e9micos de la tesis doctoral \u00ab<strong>Atomic dataflow model<\/strong>\u00ab<\/h3>\n<ul>\n<li><strong>T\u00edtulo de la tesis:<\/strong>\u00a0 Atomic dataflow model <\/li>\n<li><strong>Autor:<\/strong>\u00a0 Vladimir Gajinov <\/li>\n<li><strong>Universidad:<\/strong>\u00a0 Polit\u00e9cnica de catalunya<\/li>\n<li><strong>Fecha de lectura de la tesis:<\/strong>\u00a0 20\/11\/2014<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Direcci\u00f3n y tribunal<\/h3>\n<ul>\n<li><strong>Director de la tesis<\/strong>\n<ul>\n<li>Eduard Ayguad\u00e9 Parra<\/li>\n<\/ul>\n<\/li>\n<li><strong>Tribunal<\/strong>\n<ul>\n<li>Presidente del tribunal: paolo Meloni <\/li>\n<li>miquel Peric\u00ed\u00a0s gleim (vocal)<\/li>\n<li>  (vocal)<\/li>\n<li>  (vocal)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tesis doctoral de Vladimir Gajinov Con el reciente cambio en el dise\u00f1o de los procesadores de prop\u00f3sito general pasando del [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"categories":[4810,1890,6474,15596],"tags":[15960,221226,227096,230217],"class_list":["post-116665","post","type-post","status-publish","format-standard","hentry","category-arquitectura-de-ordenadores","category-ciencia-de-los-ordenadores","category-lenguajes-de-programacion","category-politecnica-de-catalunya","tag-eduard-ayguade-parra","tag-miquel-perici-s-gleim","tag-paolo-meloni","tag-vladimir-gajinov"],"_links":{"self":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/posts\/116665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/comments?post=116665"}],"version-history":[{"count":0,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/posts\/116665\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/media?parent=116665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/categories?post=116665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deberes.net\/tesis\/wp-json\/wp\/v2\/tags?post=116665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}