El problema del consumo energético se presenta como uno de los mayores obstáculos para el diseño de sistemas que sean capaces de alcanzar la escala de los Exaflops. Por lo tanto, la comunidad científica está en la búsqueda de diferentes maneras de mejorar la eficiencia energética de los sistemas HPC. Una tendencia reciente para incrementar el poder computacional y al mismo tiempo limitar el consumo de potencia de estos sistemas consiste en incorporarles aceleradores y coprocesadores, como pueden ser las GPUs de NVIDIA y AMD o los coprocesadores Xeon Phi de Intel. Por otra parte, las FPGAs aparecen como una opción promisoria para HPC debido a su capacidad de cómputo creciente, su bajo consumo energético y al desarrollo de nuevas herramientas que facilitan su programación. Estos sistemas híbridos que emplean diferentes recursos de procesamiento se denominan sistemas heterogéneos y son capaces de obtener mejores cocientes FLOPS/Watt. Entre las áreas que se ven afectadas por los problemas actuales de los sistemas HPC se encuentra la bioinformática, debido al crecimiento exponencial que ha experimentado la información biológica en los últimos años y a que cuenta con un número creciente de aplicaciones que requieren de cómputo de altas prestaciones para alcanzar tiempos de respuesta aceptables. Una de esas aplicaciones es el alineamiento de secuencias, la cual es considerada una operación fundamental en las ciencias biológicas debido a su utilización en la mayoría de sus especialidades. El alineamiento consiste en comparar dos o más secuencias biológicas y su propósito es detectar qué regiones comparten una historia evolutiva común. El algoritmo SW es un método popular para el alineamiento local de secuencias que ha sido utilizado como base para otros algoritmos posteriores y como patrón con el cual comparar otras técnicas de alineamiento. Sin embargo, debido a que su complejidad computacional es cuadrática, en la práctica se emplean diversas heurísticas que permiten reducir el tiempo de ejecución a costo de una pérdida en la sensibilidad de los resultados. De manera de procesar el creciente volumen de información biológica con tiempos de respuesta aceptables, resulta necesario desarrollar nuevas herramientas computacionales que sean capaces de acelerar primitivas claves y algoritmos elementales eficientemente en términos de rendimiento y consumo energético. Por ese motivo, esta tesis se planteó como objetivo general evaluar el rendimiento y la eficiencia energética de sistemas para cómputo de altas prestaciones al acelerar el alineamiento de secuencias biológicas mediante el método de Smith-Waterman. En primer lugar, se estudiaron las posibles formas de paralelizar el algoritmo SW y se describieron las implementaciones existentes sobre diferentes plataformas de procesamiento: CPU, GPU, FPGA y Xeon Phi. El análisis para cada dispositivo incluyó la evolución temporal de sus implementaciones así como también una descripción detallada de los aportes, las limitaciones, los resultados y la experimentación realizada en cada uno de los trabajos. Este análisis fue posible gracias al estudio de las diferentes arquitecturas y modelos de programación además del de los distintos algoritmos para alineamiento de secuencias biológicas realizado previamente. A continuación, se desarrollaron nuevas soluciones algorítmicas para sistemas heterogéneos. Como las GPUs son el acelerador dominante en la comunidad de HPC al día de hoy y existe vasta investigación científica sobre el uso de esta clase de aceleradores para el alineamiento de secuencias, se decidió priorizar el desarrollo de implementaciones para sistemas heterogéneos basados en Xeon Phi y basados en FPGA. Al inicio de esta tesis no existían implementaciones disponibles para el alineamiento de secuencias basadas en Xeon Phi. En sentido opuesto, sí existían antecedentes en la aplicación de FPGAs para el procesamiento de secuencias biológicas, aunque estas implementaciones fueron desarrolladas con HDLs tradicionales y en su mayoría poseen una o más limitaciones que restringen su uso en el mundo real. El trabajo experimental se inició con los sistemas heterogéneos basados en Xeon Phi. Como punto de partida, se desarrollaron y optimizaron implementaciones para las CPUs y los Xeon Phi en forma individual antes de combinarlos en una implementación híbrida. Las implementaciones desarrolladas fueron compiladas en una única herramienta a la cual se la llamó SWIMM. A partir del análisis del estado del arte realizado inicialmente, se identificó a SWIPE como la herramienta más rápida para búsquedas de similitud en CPU. Mediante los experimentos realizados, se mostró que la versión SSE de SWIMM es equiparable con SWIPE mientras que la versión AVX2 logró superarlo ampliamente alcanzado diferencias de hasta 1.4x. Cabe destacar que, hasta donde llega el conocimiento del tesista, esta es la primera implementación SW para el conjunto de instrucciones AVX2. En cuanto a los Xeon Phi, al inicio de esta investigación no existían implementaciones disponibles para este coprocesador. Sin embargo, en el año 2014 aparecieron SWAPHI y XSW 2.0. Mientras que SWAPHI sólo explota el coprocesador, XSW 2.0 es capaz de aprovechar la potencia del host en simultáneo. A través de los experimentos realizados, se mostró que la versión KNC de SWIMM resulta competitiva con SWAPHI, siendo capaz de superarlo para secuencias medianas y largas. Complementariamente, la versión híbrida de SWIMM con distribución dinámica (SSE+KNC) superó notablemente a su alternativa XSW 2.0, logrando aceleraciones de hasta 3.9x. El siguiente paso en el trabajo experimental consistió en el desarrollo de soluciones algorítmicas para sistemas heterogéneos basados en aceleradores FPGA. A diferencia de las implementaciones disponibles en la literatura, se decidió explorar los beneficios de utilizar una tecnología innovadora, como lo es OpenCL en el ámbito de las FPGAs, en lugar de HDLs tradicionales como VHDL o Verilog. En primer lugar, se exploró el rendimiento y el consumo de recursos de diferentes kernels de forma de encontrar la configuración más beneficiosa. Posteriormente, se desarrolló una versión híbrida empleando el código de SWIMM. Estas implementaciones también fueron compiladas en una única herramienta a la cual se la llamó OSWALD. Hasta donde llega el conocimiento del tesista, ésta es la primera implementación utilizando OpenCL sobre FPGAs para búsquedas de similitud. Además, en base al análisis del estado del arte realizado inicialmente, es una de las pocas implementaciones que es completamente funcional y general para esta clase de sistemas, además de facilitar la portabilidad por el empleo de OpenCL. Desafortunadamente, la ausencia del código fuente impide una comparación con otras implementaciones basadas en FPGA y aunque un análisis teórico es posible, los diferentes dispositivos, tecnologías y enfoques empleados no sólo complican una comparación directa sino que también dificultan hacerla en forma justa. La última etapa del trabajo experimental se basó en relacionar el rendimiento alcanzado con el consumo de potencia de los sistemas empleados previamente. De acuerdo al análisis realizado, se puede afirmar que los sistemas basados únicamente en CPU son capaces de obtener un buen balance entre rendimiento y consumo de potencia a partir de la explotación de multihilado e instrucciones vectoriales, destacándose aquellos que disponen de las extensiones AVX2. Por otra parte, la incorporación de aceleradores al cómputo del host demostró mejorar el rendimiento global del sistema en todos los casos, aunque la proporción de mejora varió de acuerdo al acelerador elegido. Desafortunadamente no ocurrió lo mismo en cuanto a la eficiencia energética. Los Xeon Phi no representan una buena opción para este tipo de aplicación. La ausencia de capacidades vectoriales para enteros de bajo rango es la causa principal del pobre rendimiento de este coprocesador, lo que provoca que el incremento en el consumo energético sea mucho mayor que la ganancia de rendimiento. En sentido opuesto, las GPUs sí pueden explotar este tipo de datos y es por ello que se puede aprovechar su gran poder computacional para acelerar los alineamientos. Aunque el aumento en el consumo de potencia es elevado, la mejora lograda por el uso de esta clase de aceleradores resulta superior, lo que se traduce en una mayor eficiencia energética. En el caso de las FPGAs, su capacidad de reconfiguración hace posible adaptar el hardware a los requerimientos del algoritmo SW. Si bien el rendimiento alcanzable de estos aceleradores puede ser inferior al correspondiente a las GPUs, su bajo consumo de potencia lleva a mayores tasas de eficiencia energética. A diferencia de otras evaluaciones de rendimiento y eficiencia energética en el contexto de SW, en esta tesis se han empleado secuencias de consulta y bases de datos representativas de la comunidad bioinformática, potentes arquitecturas orientadas a HPC y eficientes implementaciones que han demostrado ser las más rápidas de su clase. Por ese motivo se considera que la evaluación presentada puede ser de mayor utilidad en el mundo real. De acuerdo a los resultados obtenidos y a las contribuciones realizadas, se espera que esta tesis aporte a una mayor adopción de SW por parte de la comunidad bioinformática y a un procesamiento más eficiente de los alineamientos de secuencias biológicas en términos de rendimiento y consumo energético.
Esta Tesis intenta realizar una serie de aportes sobre la Forensia en Informática, contemplando las nuevas tecnologías que hoy día aplican en los procesos judiciales y que derivan en Pericias muy específicas y complicadas, tareas técnicas sobre las que no se puede generar ninguna duda en el tratamiento de la prueba. Es decir, el proceso de generación de la prueba, desde el secuestro de la misma hasta el análisis pericial, debe ser indubitable, de manera tal que quien deba impartir justicia pueda contar con elementos claros, contundentes y útiles. La informática puede considerarse que se encuentra relacionada en forma transversal con gran parte de la problemática judicial, aplicando en los distintos fueros de la Justicia Argentina, tanto en lo Laboral, Comercial, Civil, Contencioso Administrativo Federal, Penal Económico, Criminal y también para la Corte Suprema.
Las aplicaciones de cómputo científico pueden considerarse como el tipo de software más longevo que haya sido creado. Hoy en día se pueden encontrar grandes referentes de este tipo de software diseminado en varias disciplinas de la ciencia, como Física, Química, Matemáticas, Biología, Economía, etc. Uno de los ejemplos más vigentes en la actualidad son los llamados Modelos Climáticos Globales o Global Climate Models (en inglés) utilizados para el estudio climático. Los científicos han desarrollado software desde la aparición de los primeros lenguajes de programación ya hace mas de 76 años. Fortran es el primer lenguaje de alto nivel creado, el primer lenguaje en tener su propio estándar y el mas utilizado en HPC junto con C. En la tesis se introduce una nueva metodología de desarrollo de software llamada Change Driven Development (CDD), creada inicialmente para el proceso de mantenimiento, basada tres aspectos: aspectos esenciales del software (el cambio), herramientas de desarrollo altamente integradas y transformaciones de código fuente(restructuring y refactoring). En la misma se describe detalladamente la metodología y se valida mediante 4 casos de estudios de diversa índole.
La Informática es una disciplina científica joven que se aplica a otras áreas de conocimiento. Es así como esta tesis presenta una investigación realizada en el campo de las tecnologías informáticas aplicadas a la Educación. Aborda como situación problemática la inclusión de las tecnologías móviles en el aprendizaje, fenómeno denominado como mobile learning o m-learning. La principal contribución consiste en la propuesta de un marco, MADE mlearn, que permite analizar, diseñar y evaluar experiencias de m learning, desde un enfoque ecológico o sistémico. Considera tanto aspectos estructurales como procedimentales. Desde lo estructural, está compuesto por una serie de subcaracterísticas pedagógicas, tecnológicas y socio-culturales, agrupadas en características, categorías y ejes. Desde lo procedimental, define cómo se deben realizar los procesos de análisis, diseño y evaluación de experiencias, cuando se usa este marco. Como parte del proceso de evaluación propuesto por MADE mlearn, se desarrolló una aplicación web, MADE mlearn App, que automatiza y soporta dicho proceso y que también forma parte de los aportes de esta tesis. Por otra parte, se ha realizado una profunda revisión bibliográfica y de antecedentes en la temática. A partir de esta revisión, en la tesis se propone una conceptualización propia del m learning basada en la teoría de la actividad, la teoría de la conversación (interacción) y en sus beneficios, relacionados con la contextualización del aprendizaje y con la vida cotidiana. Al mismo tiempo, como parte del estado del arte, se ha abordado una revisión de los principales aspectos vinculados con la Computación Móvil, que permitieron determinar características tecnológicas de MADE mlearn y fueron fundamentales para el desarrollo de aplicaciones móviles que formaron parte de los desafíos de este trabajo. MADE mlearn ha sido construido bajo la consideración de los aspectos teóricos abordados, de un relevamiento de contexto realizado en el Noroeste Argentino y de los antecedentes de prácticas implementadas en diversos niveles educativos, tanto en el ámbito nacional como internacional. MADE mlearn fue evaluado en sus distintas funcionalidades: a) en cuanto al análisis, se aplicó el proceso propuesto para analizar diferentes prácticas ya implementadas en otros contextos; b) en cuanto al diseño, se utilizó MADE mlearn para diseñar una práctica de m learning colaborativo (que involucró el desarrollo de la aplicación Educ Mobile) implementada en varias instancias, se analizaron resultados con varias técnicas cualitativas; c) en cuanto al rol evaluador del marco, fue validado a través de la técnica de juicio de expertos, instrumentado de manera tal que cada experto debía evaluar una práctica usando el proceso propuesto –automatizado en MADE-mlearn App. En la discusión se abordan diversos hallazgos (beneficios y falencias) obtenidos en los procesos de validación. Se concluye que MADE mlearn es un marco conceptual robusto que contribuye al área de m learning, ya que permite guiar de manera eficaz el análisis, diseño y evaluación de experiencias de m learning. Asimismo, su estructura puede ser mejorada en función de los aspectos surgidos de la discusión.