{"id":9448,"date":"2021-07-22T14:44:51","date_gmt":"2021-07-22T12:44:51","guid":{"rendered":"https:\/\/web.computaex.es\/?page_id=9448"},"modified":"2025-08-26T14:45:55","modified_gmt":"2025-08-26T12:45:55","slug":"paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion","status":"publish","type":"page","link":"https:\/\/computaex.es\/en\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/","title":{"rendered":"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n"},"content":{"rendered":"<div class=\"field field-name-field-pub-descripcion field-type-text-long field-label-hidden\">\n<div class=\"field-items\">\n<div class=\"field-item even\">\n<p>Expertos de m\u00faltiples ramas del conocimiento se enfrentan diariamente a multitud de desaf\u00edos en proyectos cient\u00edficos, t\u00e9cnicos o industriales que requieren el uso de la computaci\u00f3n de alto rendimiento (HPC, High-Performance Computing) para satisfacer adecuadamente sus necesidades. Sin embargo, el desarrollo de algoritmos y programas que empleen correctamente este tipo de infraestructuras implica un importante conocimiento previo que muchos de estos usuarios no poseen, lo cual dificulta notablemente su labor.<\/p>\n<p>Este tipo de proyectos, ampliamente multidisciplinares y heterog\u00e9neos, demandan una obtenci\u00f3n de resultados con tiempos de ejecuci\u00f3n realmente cr\u00edticos, necesitando para ello la imprescindible utilizaci\u00f3n de la computaci\u00f3n paralela. De este modo, con objeto de alcanzar resultados confiables y emplear eficientemente los recursos de c\u00f3mputo disponibles, muchos de estos profesionales necesitan una importante ayuda adicional que les permita llevar a cabo la paralelizaci\u00f3n y optimizaci\u00f3n de sus c\u00f3digos. De hecho, es habitual que el primer obst\u00e1culo al que se enfrenten sea precisamente la adaptaci\u00f3n de sus propios algoritmos secuenciales. En algunos casos, implementar estos c\u00f3digos ya resulta una tarea complicada para expertos de diversas ramas de la ciencia muy alejadas de la programaci\u00f3n inform\u00e1tica, lo cual prolonga significativamente su curva de aprendizaje. La situaci\u00f3n empeora especialmente cuando precisan adem\u00e1s el uso de la computaci\u00f3n paralela. De esta forma, para estos usuarios obtener una soluci\u00f3n adecuada puede convertirse en un objetivo de notable complejidad.<\/p>\n<p>Este problema est\u00e1 principalmente motivado por el hecho de que los algoritmos paralelos no son dise\u00f1ados \u00fanicamente para realizar el trabajo computacional, sino que tambi\u00e9n indican c\u00f3mo ser\u00e1 distribuido o dividido \u00e9ste entre m\u00faltiples unidades de procesamiento. As\u00ed, es com\u00fan que cient\u00edficos e investigadores, que carecen de la formaci\u00f3n espec\u00edfica requerida, empleen demasiado tiempo en desarrollar y ejecutar correctamente este tipo de algoritmos. Esto propicia adem\u00e1s que sus c\u00f3digos no sean tan eficientes como deber\u00edan, para lo cual se requiere mayor preparaci\u00f3n y experiencia.<\/p>\n<p>La completa paralelizaci\u00f3n autom\u00e1tica de c\u00f3digos de programaci\u00f3n, considerando adem\u00e1s su eficiencia y el correcto uso de los recursos de c\u00f3mputo disponibles, ser\u00eda de utilidad, no solo para estos investigadores, sino tambi\u00e9n para los propios administradores de los centros de computaci\u00f3n de alto rendimiento. De esta forma, los usuarios podr\u00edan hacer un uso m\u00e1s eficiente tanto de su propio tiempo, como de las infraestructuras ofrecidas por estos centros, donde dicha eficiencia es clave en diversos aspectos, entre los que destacan: los tiempos de c\u00f3mputo y de espera para acceder a las distintas infraestructuras, el n\u00famero de n\u00facleos o procesadores empleados y la disponibilidad de memoria y espacio en disco, sin olvidar el consumo energ\u00e9tico, que actualmente supone un desaf\u00edo clave para los centros HPC.<\/p>\n<p>En consecuencia, uno de los objetivos principales de la presente tesis doctoral consiste en dar soluci\u00f3n a los problemas identificados, proponiendo un transcompilador (compilador source-to-source) para la paralelizaci\u00f3n autom\u00e1tica de c\u00f3digos secuenciales, con el cual ser\u00e1 posible obtener mejores rendimientos y eficiencias en las ejecuciones y escoger una correcta estrategia de planificaci\u00f3n para cada c\u00f3digo. De esta manera, el transcompilador determina las partes del c\u00f3digo que pueden ser paralelizadas y genera autom\u00e1ticamente la correspondiente versi\u00f3n paralela. La realizaci\u00f3n de transformaciones source-to-source secuencial-paralelo permite adem\u00e1s a los usuarios comparar ambos c\u00f3digos de forma m\u00e1s simple, facilitando el aprendizaje y la mejora de sus capacidades en programaci\u00f3n paralela.<\/p>\n<p>Adicionalmente, es habitual que los programadores centren sus esfuerzos en aquellas instrucciones que pueden ser paralelizadas, sin tener en cuenta la eficiencia del resto del c\u00f3digo, a menudo ignorando el importante efecto que las partes secuenciales tienen sobre los tiempos de ejecuci\u00f3n. El impacto asociado es especialmente significativo en trabajos HPC que tardan varios d\u00edas en ejecutarse o que forman parte de proyectos que requieren miles de horas de CPU anuales, algo muy com\u00fan en variedad de investigaciones cient\u00edficas. Por ello, esta tesis eval\u00faa y analiza diversas t\u00e9cnicas software con el objetivo de conseguir mejoras adicionales en el c\u00f3digo y reducir los tiempos de ejecuci\u00f3n. Las t\u00e9cnicas han sido seleccionadas entre la literatura existente y escogidas por ser las m\u00e1s representativas o que mejoran de modo m\u00e1s notable la eficiencia, entendiendo \u00e9sta como el rendimiento computacional alcanzado por un programa en relaci\u00f3n al alcanzable en una situaci\u00f3n \u00f3ptima. En primer lugar, se realiza un detallado an\u00e1lisis del impacto producido al aplicar las distintas estrategias en dispositivos IoT (Internet of Things, Internet de las cosas), debido a su mayor sencillez para realizar todas las mediciones necesarias. Tras comprobar su impacto en la reducci\u00f3n de los tiempos de ejecuci\u00f3n y en el ahorro energ\u00e9tico, las mismas estrategias son aplicadas sobre infraestructuras HPC. De este modo se demuestra que las t\u00e9cnicas propuestas permiten aumentar la eficiencia de forma f\u00e1cil y sencilla en ambos entornos, posibilitando que los usuarios obtengan destacables mejoras de rendimiento con cambios menores en sus c\u00f3digos.<\/p>\n<p>Con todo lo anterior se consigue que incluso usuarios noveles puedan hacer un uso m\u00e1s apropiado y eficiente de los recursos computacionales, disminuyendo los problemas inherentes al aprendizaje de la programaci\u00f3n paralela.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"field field-name-field-pub-proyectos field-type-text-long field-label-above\">\n<div class=\"field-label\">Proyectos relacionado:<\/div>\n<div class=\"field-items\">\n<div class=\"field-item even\">\n<ul>\n<li>Javier Corral Garc\u00eda.\u00a0<em>Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n<\/em>. Tesis Doctoral. Programa de Doctorado en Tecnolog\u00edas Inform\u00e1ticas (TIN) de la Universidad de Extremadura. Julio de 2021.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Expertos de m\u00faltiples ramas del conocimiento se enfrentan diariamente a multitud de desaf\u00edos en proyectos cient\u00edficos, t\u00e9cnicos o industriales que requieren el uso de la computaci\u00f3n de alto rendimiento (HPC, &#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":1583,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[112,91],"tags":[],"class_list":["post-9448","page","type-page","status-publish","hentry","category-112","category-publicaciones"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n - Fundaci\u00f3n COMPUTAEX<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/computaex.es\/en\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n - Fundaci\u00f3n COMPUTAEX\" \/>\n<meta property=\"og:description\" content=\"Expertos de m\u00faltiples ramas del conocimiento se enfrentan diariamente a multitud de desaf\u00edos en proyectos cient\u00edficos, t\u00e9cnicos o industriales que requieren el uso de la computaci\u00f3n de alto rendimiento (HPC, ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/computaex.es\/en\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/\" \/>\n<meta property=\"og:site_name\" content=\"Fundaci\u00f3n COMPUTAEX\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/m.facebook.com\/computaex\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-26T12:45:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/computaex.es\/wp-content\/uploads\/2025\/08\/COMPUTAEX.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"403\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@computaex\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/\",\"url\":\"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/\",\"name\":\"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n - Fundaci\u00f3n COMPUTAEX\",\"isPartOf\":{\"@id\":\"https:\/\/computaex.es\/#website\"},\"datePublished\":\"2021-07-22T12:44:51+00:00\",\"dateModified\":\"2025-08-26T12:45:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/computaex.es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Publicaciones\",\"item\":\"https:\/\/computaex.es\/publicaciones\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/computaex.es\/#website\",\"url\":\"https:\/\/computaex.es\/\",\"name\":\"Fundaci\u00f3n COMPUTAEX\",\"description\":\"COMPUTAEX\",\"publisher\":{\"@id\":\"https:\/\/computaex.es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/computaex.es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/computaex.es\/#organization\",\"name\":\"COMPUTAEX\",\"url\":\"https:\/\/computaex.es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/computaex.es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/computaex.es\/wp-content\/uploads\/2025\/05\/cropped-COMPUTAEX_transparente-scaled-1.png\",\"contentUrl\":\"https:\/\/computaex.es\/wp-content\/uploads\/2025\/05\/cropped-COMPUTAEX_transparente-scaled-1.png\",\"width\":2560,\"height\":970,\"caption\":\"COMPUTAEX\"},\"image\":{\"@id\":\"https:\/\/computaex.es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/m.facebook.com\/computaex\/\",\"https:\/\/x.com\/computaex\",\"https:\/\/es.linkedin.com\/company\/cenits\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n - Fundaci\u00f3n COMPUTAEX","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/computaex.es\/en\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/","og_locale":"en_US","og_type":"article","og_title":"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n - Fundaci\u00f3n COMPUTAEX","og_description":"Expertos de m\u00faltiples ramas del conocimiento se enfrentan diariamente a multitud de desaf\u00edos en proyectos cient\u00edficos, t\u00e9cnicos o industriales que requieren el uso de la computaci\u00f3n de alto rendimiento (HPC, ...","og_url":"https:\/\/computaex.es\/en\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/","og_site_name":"Fundaci\u00f3n COMPUTAEX","article_publisher":"https:\/\/m.facebook.com\/computaex\/","article_modified_time":"2025-08-26T12:45:55+00:00","og_image":[{"width":1024,"height":403,"url":"https:\/\/computaex.es\/wp-content\/uploads\/2025\/08\/COMPUTAEX.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@computaex","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/","url":"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/","name":"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n - Fundaci\u00f3n COMPUTAEX","isPartOf":{"@id":"https:\/\/computaex.es\/#website"},"datePublished":"2021-07-22T12:44:51+00:00","dateModified":"2025-08-26T12:45:55+00:00","breadcrumb":{"@id":"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/computaex.es\/publicaciones\/paralelizacion-automatica-y-estrategias-de-desarrollo-de-codigo-eficiente-para-aumentar-el-rendimiento-en-centros-de-supercomputacion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/computaex.es\/"},{"@type":"ListItem","position":2,"name":"Publicaciones","item":"https:\/\/computaex.es\/publicaciones\/"},{"@type":"ListItem","position":3,"name":"Paralelizaci\u00f3n Autom\u00e1tica y Estrategias de Desarrollo de C\u00f3digo Eficiente para Aumentar el Rendimiento en Centros de Supercomputaci\u00f3n"}]},{"@type":"WebSite","@id":"https:\/\/computaex.es\/#website","url":"https:\/\/computaex.es\/","name":"COMPUTAEX Foundation","description":"COMPUTAEX","publisher":{"@id":"https:\/\/computaex.es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/computaex.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/computaex.es\/#organization","name":"COMPUTAEX","url":"https:\/\/computaex.es\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/computaex.es\/#\/schema\/logo\/image\/","url":"https:\/\/computaex.es\/wp-content\/uploads\/2025\/05\/cropped-COMPUTAEX_transparente-scaled-1.png","contentUrl":"https:\/\/computaex.es\/wp-content\/uploads\/2025\/05\/cropped-COMPUTAEX_transparente-scaled-1.png","width":2560,"height":970,"caption":"COMPUTAEX"},"image":{"@id":"https:\/\/computaex.es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/m.facebook.com\/computaex\/","https:\/\/x.com\/computaex","https:\/\/es.linkedin.com\/company\/cenits"]}]}},"_links":{"self":[{"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/pages\/9448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/comments?post=9448"}],"version-history":[{"count":1,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/pages\/9448\/revisions"}],"predecessor-version":[{"id":9449,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/pages\/9448\/revisions\/9449"}],"up":[{"embeddable":true,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/pages\/1583"}],"wp:attachment":[{"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/media?parent=9448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/categories?post=9448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computaex.es\/en\/wp-json\/wp\/v2\/tags?post=9448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}