{"id":7,"date":"2014-03-20T19:40:49","date_gmt":"2014-03-20T19:40:49","guid":{"rendered":"http:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/?page_id=7"},"modified":"2018-11-07T14:39:13","modified_gmt":"2018-11-07T19:39:13","slug":"inicio","status":"publish","type":"page","link":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/","title":{"rendered":"Inicio"},"content":{"rendered":"<style type=\"text\/css\">\ntable.steelBlueCols {\n  border: 4px solid #555555;\n  background-color: #e4e4e4;\n  width: 100%;\n  text-align: left;\n  border-collapse: collapse;\n}\ntable.steelBlueCols td, table.steelBlueCols th {\n  border: 1px solid #555555;\n  padding: 5px 10px;\n}\ntable.steelBlueCols tbody td {\n  font-size: 16px;\n  color: #000000;\n}\ntable.steelBlueCols tr:nth-child(even) {\n  background: #9e9e9e;\n}\ntable.steelBlueCols td:nth-child(even) {\n  background: #FFFFFF;\n}\ntable.steelBlueCols tfoot td {\n  font-size: 13px;\n}\ntable.steelBlueCols tfoot .links {\n  text-align: right;\n}\ntable.steelBlueCols tfoot .links a{\n  display: inline-block;\n  background: #FFFFFF;\n  color: #398AA4;\n  padding: 2px 8px;\n  border-radius: 5px;\n}\ntable.msin_noheader {\n  border: 1px solid #48A453;\n  background-color: #eeeeee;\n  \/\/width: 100%;\n  text-align: left;\n  border-collapse: collapse;\n}\ntable.msin_noheader td, table.msin_noheader th {\n  border: 1px solid #AAAAAA;\n  padding: 5px 5px;\n}\ntable.msin_noheader tbody td {\n  font-size: 16px;\n}\ntable.msin_noheader tr:nth-child(even) {\n  background: #fff;\n}\ntable.msin_noheader tfoot td {\n  font-size: 14px;\n}\ntable.msin_noheader tfoot .links {\n  text-align: right;\n}\ntable.msin_noheader tfoot .links a{\n  display: inline-block;\n  background: #1C6EA4;\n  color: #FFFFFF;\n  padding: 2px 8px;\n  border-radius: 5px;\n}\ntable.msin_header {\n  border: 1px solid #48A453;\n  background-color: #fff;\n  \/\/width: 100%;\n  text-align: left;\n  border-collapse: collapse;\n}\ntable.msin_header td, table.msin_header th {\n  border: 1px solid #AAAAAA;\n  padding: 5px 5px;\n}\ntable.msin_header tbody td {\n  font-size: 16px;\n}\ntable.msin_header tr:nth-child(even) {\n  background: #eeeeee;\n}\ntable.msin_header thead {\n  background: #b6b9bb;\n  border-bottom: 2px solid #444444;\n}\ntable.msin_header thead th {\n  font-size: 15px;\n  font-weight: bold;\n  color: #000;\n  border-left: 2px solid #D0E4F5;\n}\ntable.msin_header thead th:first-child {\n  border-left: none;\n}\n<\/style>\n<h1>Semestre 2018-20<\/h1>\n<p>&nbsp;<br \/>\n<!--- \n[table]\nNombre del curso:[attr style=\"background:#cc6633; color:#FFFFFF\"], An\u00e1lisis de Algoritmos\nCourse Name:[attr style=\"background:#d88c66; color:#FFFFFF; font-style:italic\"], ------\nCr\u00e9ditos:[attr style=\"background:#cc6633; color:#FFFFFF\"], 4\nProfesor:[attr style=\"background:#d88c66; color:#FFFFFF\"], Rodrigo Cardoso (rcardoso@uniandes.edu.co)\n[\/table] ---><\/p>\n<table class=\"steelBlueCols\">\n<tbody>\n<tr>\n<td>Nombre del curso:<\/td>\n<td>Herramientas de programaci\u00f3n de alto rendimiento<\/td>\n<\/tr>\n<tr>\n<td>Cr\u00e9ditos:<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>Profesor:<\/td>\n<td>Pablo Figueroa (pfiguero@uniandes.edu.co)<\/td>\n<\/tr>\n<tr>\n<td>Versi\u00f3n PDF<\/td>\n<td><a href=\"https:\/\/cursos.virtual.uniandes.edu.co\/pdf\/curso.php?codigo=isis4824\" target=\"_blank\">Click Aqu\u00ed<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\n<!-- ************************************************************************* --><\/p>\n\n<div class=\"arconix-tabs-horizontal\"><ul class=\"arconix-tabs\"><li data-arconix-icon=\"\" data-arconix-color=\"\" class=\"arconix-tab tab-Objetivos\"><a class=\"\" href=\"#tab-Objetivos\">Objetivos<\/a><\/li>\n<li data-arconix-icon=\"\" data-arconix-color=\"\" class=\"arconix-tab tab-Metodologa\"><a class=\"\" href=\"#tab-Metodologa\">Metodolog\u00eda<\/a><\/li>\n<li data-arconix-icon=\"\" data-arconix-color=\"\" class=\"arconix-tab tab-Evaluacin\"><a class=\"\" href=\"#tab-Evaluacin\">Evaluaci\u00f3n<\/a><\/li>\n<li data-arconix-icon=\"\" data-arconix-color=\"\" class=\"arconix-tab tab-Bibliografa\"><a class=\"\" href=\"#tab-Bibliografa\">Bibliograf\u00eda<\/a><\/li><\/ul>\n<div class=\"arconix-panes\"><div class=\"arconix-pane pane-Objetivos\">\n<h1>Objetivos<\/h1>\n<ul>\n<li>Usar herramientas de desarrollo y programaci\u00f3n de alto rendimiento, tanto en ejemplos de laboratorio como en proyectos reales.<\/li>\n<li>Usar herramientas de comprensi\u00f3n de c\u00f3digo de proyectos de inter\u00e9s.<\/li>\n<li>Usar nuevas herramientas de programaci\u00f3n en paralelo, basadas en las tecnolog\u00edas multicore de CPUs y GPUs.<\/li>\n<li>Conocer algoritmos que hacen uso intensivo de la GPU.<\/li>\n<\/ul>\n<\/div>\n<div class=\"arconix-pane pane-Metodologa\">\n<h1>Metodolog\u00eda<\/h1>\n<p>El contenido del curso se divide en temas te\u00f3ricos y temas de tecnolog\u00eda. La teor\u00eda viene del libro gu\u00eda de la materia y se cubren 4 tecnolog\u00edas: Programaci\u00f3n en l\u00ednea de comandos, CUDA, OpenMPI y Python. Los trabajos individuales de los estudiantes cubren otras tecnolog\u00edas y ejercicios de pr\u00e1ctica.<br \/>\n<\/div>\n<div class=\"arconix-pane pane-Evaluacin\">\n<h1>Evaluaci\u00f3n<\/h1>\n<ul>\n<li>40%: Descripci\u00f3n de los ejemplos (4)<\/li>\n<li>20%: An\u00e1lisis de otra tecnolog\u00eda no cubierta en el curso (en grupo)<\/li>\n<li>20%: Competencia en rendimiento<\/li>\n<li>20%: Trabajo final (en grupo)<\/li>\n<\/ul>\n<h2>Descripci\u00f3n de ejemplos<\/h2>\n<p>La descripci\u00f3n de un ejemplo es un documento que muestra el conocimiento adquirido sobre el lenguaje, sobre el ejemplo en cuesti\u00f3n y sobre su ejecuci\u00f3n con base en los conceptos b\u00e1sicos. El documento tiene la siguiente tabla de contenido:<\/p>\n<ul>\n<li> Clasificaci\u00f3n, de acuerdo a la taxonom\u00eda de Flynn<\/li>\n<li> Descripci\u00f3n de tareas, unidades de ejecuci\u00f3n, elementos de procesamiento, balanceo de carga, sincronizaci\u00f3n,<\/li>\n<li> An\u00e1lisis de tiempos<\/li>\n<li> An\u00e1lisis de comunicaci\u00f3n<\/li>\n<li> Patrones aplicados (hasta los vistos en el curso al momento de la evaluaci\u00f3n)<\/li>\n<li> An\u00e1lisis de l\u00edneas de c\u00f3digo (Diigo)<\/li>\n<li> Bit\u00e1cora de pruebas y ejemplos adicionales<\/li>\n<li> Posibles mejoras (idealmente acompa\u00f1ado con un patch)<\/li>\n<\/ul>\n<p><\/p>\n<h2>An\u00e1lisis de otra tecnolog\u00eda<\/h2>\n<p>Hay muchas tecnolog\u00edas para desarrollo de aplicaciones de alto rendimiento, y el objetivo en este caso es analizar otras tecnolog\u00edas de manera similar a la forma en la cual se analiza en el curso. El an\u00e1lisis debe incluir<\/p>\n<ul>\n<li>Una breve introducci\u00f3n de la tecnolog\u00eda y su historia<\/li>\n<li>Descripci\u00f3n de la tecnolog\u00eda (extensi\u00f3n a un lenguaje, lenguaje, framework, \u2026)<\/li>\n<li>Descripci\u00f3n de las herramientas de trabajo y an\u00e1lisis de resultados<\/li>\n<li>Un ejemplo detallado<\/li>\n<li>Bit\u00e1cora del an\u00e1lisis de la tecnolog\u00eda<\/li>\n<li>Videos cortos (no mas de 10 minutos) con la presentaci\u00f3n de dicha tecnolog\u00eda<\/li>\n<\/ul>\n<p>Esta es una lista inicial de tecnolog\u00edas. Uds pueden proponer otras.<\/p>\n<ul>\n<li>C++AMP<\/li>\n<li>PowerShell (Windows)<\/li>\n<li>OpenACC<\/li>\n<li>OpenMP<\/li>\n<li>Perl, en el contexto de problemas de bioinform\u00e1tica<\/li>\n<li>Paralelismo y concurrencia en Java<\/li>\n<li>OpenCL<\/li>\n<li>Aparapi (ATI)<\/li>\n<li>Direct Compute (Windows)<\/li>\n<\/ul>\n<p>Puede verse tambi\u00e9n el problema desde el punto de vista de software existente de alto rendimiento, implementado en otras tecnolog\u00edas. Ejemplos son:<\/p>\n<ul>\n<li>Simuladores de clima<\/li>\n<li>Genomics, Proteomics<\/li>\n<li>SETI at Home<\/li>\n<li>Boinc<\/li>\n<li>Fold it<\/li>\n<li>Ejemplos espec\u00edficos de GPGPU<\/li>\n<\/ul>\n<p><\/p>\n<h2>Competencia en rendimiento<\/h2>\n<p>Vamos a competir en mejorar el rendimiento del c\u00f3digo ejemplo de GPU, el simulador desarrollado por Diego Rodriguez. el trabajo consiste en hacer modificaciones al c\u00f3digo de Diego, medir el rendimiento de los cambios y entregar al final un informe que contenga:<\/p>\n<p>El acceso a Gambita es restringido, por lo que se espera que uds. tomen turnos para su uso.<\/p>\n<p><\/p>\n<h2>Trabajo final<\/h2>\n<p>Se propone la soluci\u00f3n a un problema de alto rendimiento, en cualquier dominio y con cualquier herramienta o tecnolog\u00eda. Algunos problemas sugeridos son:<\/p>\n<ul>\n<li>Simulaci\u00f3n distribuida de pilotaje de aviones<\/li>\n<li>Simulaci\u00f3n distribuida de tr\u00e1fico urbano<\/li>\n<li>Visualizaci\u00f3n en astrof\u00edsica<\/li>\n<li>(Omar Lopez) Mejora de desempe\u00f1o de un c\u00f3digo de Smoothed Particle Hydrodynamics (SPH) en GPU<\/li>\n<li>(Omar Lopez) Visualizaci\u00f3n paralela de un vuelo virtual<\/li>\n<\/ul>\n<\/div>\n<div class=\"arconix-pane pane-Bibliografa\">\n<h1>Bibliograf\u00eda<\/h1>\n<ul>\n<li>Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Patterns for Parallel Programming. Addison-Wesley Professional; 1 edition (September 25, 2004). Libro Guia<\/li>\n<li>UMunshi, Gaster, Mattson, Fung, Ginsburg. OpenCL Programming Guide. Addison-Wesley. 2012<\/li>\n<li>Sanders, Kandrot. CUDA By Example. Addison-Wesley. 2011<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Semestre 2018-20 &nbsp; Nombre del curso: Herramientas de programaci\u00f3n de alto rendimiento Cr\u00e9ditos: 4 Profesor: Pablo Figueroa (pfiguero@uniandes.edu.co) Versi\u00f3n PDF Click Aqu\u00ed &nbsp; &hellip; <a class=\"more-link\" href=\"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":59,"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":138,"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/pages\/7\/revisions\/138"}],"wp:attachment":[{"href":"https:\/\/cursos.virtual.uniandes.edu.co\/isis4824\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}