31 research outputs found

    Coupling SIMD and SIMT Architectures to Boost Performance of a Phylogeny-aware Alignment Kernel

    Get PDF
    Background: Aligning short DNA reads to a reference sequence alignment is a prerequisite for detecting their biological origin and analyzing them in a phylogenetic context. With the PaPaRa tool we introduced a dedicated dynamic programming algorithm for simultaneously aligning short reads to reference alignments and corresponding evolutionary reference trees. The algorithm aligns short reads to phylogenetic profiles that correspond to the branches of such a reference tree. The algorithm needs to perform an immense number of pairwise alignments. Therefore, we explore vector intrinsics and GPUs to accelerate the PaPaRa alignment kernel. Results: We optimized and parallelized PaPaRa on CPUs and GPUs. Via SSE 4.1 SIMD (Single Instruction, Multiple Data) intrinsics for x86 SIMD architectures and multi-threading, we obtained a 9-fold acceleration on a single core as well as linear speedups with respect to the number of cores. The peak CPU performance amounts to 18.1 GCUPS (Giga Cell Updates per Second) using all four physical cores on an Intel i7 2600 CPU running at 3.4 GHz. The average CPU performance (averaged over all test runs) is 12.33 GCUPS. We also used OpenCL to execute PaPaRa on a GPU SIMT (Single Instruction, Multiple Threads) architecture. A NVIDIA GeForce 560 GPU delivered peak and average performance of 22.1 and 18.4 GCUPS respectively. Finally, we combined the SIMD and SIMT implementations into a hybrid CPU-GPU system that achieved an accumulated peak performance of 33.8 GCUPS. Conclusions: This accelerated version of PaPaRa (available at www.exelixis-lab.org/software.html) provides a significant performance improvement that allows for analyzing larger datasets in less time. We observe that state-of-the-art SIMD and SIMT architectures deliver comparable performance for this dynamic programming kernel when the “competing programmer approach” is deployed. Finally, we show that overall performance can be substantially increased by designing a hybrid CPU-GPU system with appropriate load distribution mechanisms

    Phylogeny-Aware Placement and Alignment Methods for Short Reads

    Get PDF
    In recent years bioinformatics has entered a new phase: New sequencing methods, generally referred to as Next Generation Sequencing (NGS) have become widely available. This thesis introduces algorithms for phylogeny aware analysis of short sequence reads, as generated by NGS methods in the context of metagenomic studies. A considerable part of this work focuses on the technical (w.r.t. performance) challenges of these new algorithms, which have been developed specifically to exploit parallelism

    Molecular phylogenetic analysis: design and implementation of scalable and reliable algorithms and verification of phylogenetic properties

    Get PDF
    El término bioinformática tiene muchas acepciones, una gran parte referentes a la bioinformática molecular: el conjunto de métodos matemáticos, estadísticos y computacionales que tienen como objetivo dar solución a problemas biológicos, haciendo uso exclusivamente de las secuencias de ADN, ARN y proteínas y su información asociada. La filogenética es el área de la bioinformática encargada del estudio de la relación evolutiva entre organismos de la misma o distintas especies. Al igual que sucedía con la definición anterior, los trabajos realizados a lo largo de esta tesis se centran en la filogenética molecular: la rama de la filogenética que analiza las mutaciones hereditarias en secuencias biológicas (principalmente ADN) para establecer dicha relación evolutiva. El resultado de este análisis se plasma en un árbol evolutivo o filogenia. Una filogenia suele representarse como un árbol con raíz, normalmente binario, en el que las hojas simbolizan los organismos existentes actualmente y, la raíz, su ancestro común. Cada nodo interno representa una mutación que ha dado lugar a una división en la clasificación de los descendientes. Las filogenias se construyen mediante procesos de inferencia en base a la información disponible, que pertenece mayoritariamente a organismos existentes hoy en día. La complejidad de este problema se ha visto reflejada en la clasificación de la mayoría de métodos propuestos para su solución como NP-duros [1-3].El caso real de aplicación de esta tesis ha sido el ADN mitocondrial. Este tipo de secuencias biológicas es relevante debido a que tiene un alto índice de mutación, por lo que incluso filogenias de organismos muy cercanos evolutivamente proporcionan datos significativos para la comunidad biológica. Además, varias mutaciones del ADN mitocondrial humano se han relacionado directamente con enfermedad y patogenias, la mayoría mortales en individuos no natos o de corta edad. En la actualidad hay más de 30000 secuencias disponibles de ADN mitocondrial humano, lo que, además de su utilidad científica, ha permitido el análisis de rendimiento de nuestras contribuciones para datos masivos (Big Data). La reciente incorporación de la bioinformática en la categoría Big Data viene respaldada por la mejora de las técnicas de digitalización de secuencias biológicas que sucedió a principios del siglo 21 [4]. Este cambio aumentó drásticamente el número de secuencias disponibles. Por ejemplo, el número de secuencias de ADN mitocondrial humano pasó de duplicarse cada cuatro años, a hacerlo en menos de dos. Por ello, un gran número de métodos y herramientas usados hasta entonces han quedado obsoletos al no ser capaces de procesar eficientemente estos nuevos volúmenes de datos.Este es motivo por el que todas las aportaciones de esta tesis han sido desarrolladas para poder tratar grandes volúmenes de datos. La contribución principal de esta tesis es un framework que permite diseñar y ejecutar automáticamente flujos de trabajo para la inferencia filogenética: PhyloFlow [5-7]. Su creación fue promovida por el hecho de que la mayoría de sistemas de inferencia filogenética existentes tienen un flujo de trabajo fijo y no se pueden modificar ni las herramientas software que los componen ni sus parámetros. Esta decisión puede afectar negativamente a la precisión del resultado si el flujo del sistema o alguno de sus componentes no está adaptado a la información biológica que se va a utilizar como entrada. Por ello, PhyloFlow incorpora un proceso de configuración que permite seleccionar tanto cada uno de los procesos que formarán parte del sistema final, como las herramientas y métodos específicos y sus parámetros. Se han incluido consejos y opciones por defecto durante el proceso de configuración para facilitar su uso, sobre todo a usuarios nóveles. Además, nuestro framework permite la ejecución desatendida de los sistemas filogenéticos generados, tanto en ordenadores de sobremesa como en plataformas hardware (clusters, computación en la nube, etc.). Finalmente, se han evaluado las capacidades de PhyloFlow tanto en la reproducción de sistemas de inferencia filogenética publicados anteriormente como en la creación de sistemas orientados a problemas intensivos como el de inferencia del ADN mitocondrial humano. Los resultados muestran que nuestro framework no solo es capaz de realizar los retos planteados, sino que, en el caso de la replicación de sistemas, la posibilidad de configurar cada elemento que los componen mejora ampliamente su aplicabilidad.Durante la implementación de PhyloFlow descubrimos varias carencias importantes en algunas bibliotecas software actuales que dificultaron la integración y gestión de las herramientas filogenéticas. Por este motivo se decidió crear la primera biblioteca software en Python para estudios de filogenética molecular: MEvoLib [8]. Esta biblioteca ha sido diseñada para proveer una sola interfaz para los conjuntos de herramientas software orientados al mismo proceso, como el multialineamiento o la inferencia de filogenias. MEvoLib incluye además configuraciones por defecto y métodos que hacen uso de conocimiento biológico específico para mejorar su precisión, adaptándose a las necesidades de cada tipo de usuario. Como última característica relevante, se ha incorporado un proceso de conversión de formatos para los ficheros de entrada y salida de cada interfaz, de forma que, si la herramienta seleccionada no soporta dicho formato, este es adaptado automáticamente. Esta propiedad facilita el uso e integración de MEvoLib en scripts y herramientas software.El estudio del caso de aplicación de PhyloFlow al ADN mitocondrial humano ha expuesto los elevados costes tanto computacionales como económicos asociados a la inferencia de grandes filogenias. Por ello, sistemas como PhyloTree [9], que infiere un tipo especial de filogenias de ADN mitocondrial humano, recalculan sus resultados con una frecuencia máxima anual. Sin embargo, como ya hemos comentado anteriormente, las técnicas de secuenciación actuales permiten la incorporación de cientos o incluso miles de secuencias biológicas nuevas cada mes. Este desfase entre productor y consumidor hace que dichas filogenias queden desactualizadas en unos pocos meses. Para solucionar este problema hemos diseñado un nuevo algoritmo que permite la actualización de una filogenia mediante la incorporación iterativa de nuevas secuencias: PHYSER [10]. Además, la propia información evolutiva se utiliza para detectar posibles mutaciones introducidas artificialmente por el proceso de secuenciación, inexistentes en la secuencia original. Las pruebas realizadas con ADN mitocondrial han probado su eficacia y eficiencia, con un coste temporal por secuencia inferior a los 20 segundos.El desarrollo de nuevas herramientas para el análisis de filogenias también ha sido una parte importante de esta tesis. En concreto, se han realizado dos aportaciones principales en este aspecto: PhyloViewer [11] y una herramienta para el análisis de la conservación [12]. PhyloViewer es un visualizador de filogenias extensivas, es decir, filogenias que poseen al menos un millar de hojas. Esta herramienta aporta una novedosa interfaz en la que se muestra el nodo seleccionado y sus nodos hijo, así como toda la información asociada a cada uno de ellos: identificador, secuencia biológica, ... Esta decisión de diseño ha sido orientada a evitar el habitual “borrón” que se produce en la mayoría de herramientas de visualización al mostrar este tipo de filogenias enteras por pantalla. Además, se ha desarrollado en una arquitectura clienteservidor, con lo que el procesamiento de la filogenia se realiza una única vez por parte el servidor. Así, se ha conseguido reducir significativamente los tiempos de carga y acceso por parte del cliente. Por otro lado, la aportación principal de nuestra herramienta para el análisis de la conservación se basa en la paralelización de los métodos clásicos aplicados en este campo, alcanzando speed-ups cercanos al teórico sin pérdida de precisión. Esto ha sido posible gracias a la implementación de dichos métodos desde cero, incorporando la paralelización a nivel de instrucción, en vez de paralelizar implementaciones existentes. Como resultado, nuestra herramienta genera un informe que contiene las conclusiones del análisis de conservación realizado. El usuario puede introducir un umbral de conservación para que el informe destaque solo aquellas posiciones que no lo cumplan. Además, existen dos tipos de informe con distinto nivel de detalle. Ambos se han diseñado para que sean comprensibles y útiles para los usuarios.Finalmente, se ha diseñado e implementado un predictor de mutaciones patógenas en ADN mitocondrial desarollado en máquinas de vectores de soporte (SVM): Mitoclass.1 [13]. Se trata del primer predictor para este tipo de secuencias biológicas. Tanto es así, que ha sido necesario crear el primer repositorio de mutaciones patógenas conocidas, mdmv.1, para poder entrenar y evaluar nuestro predictor. Se ha demostrado que Mitoclass.1 mejora la clasificación de las mutaciones frente a los predictores más conocidos y utilizados, todos ellos orientados al estudio de patogenicidad en ADN nuclear. Este éxito radica en la novedosa combinación de propiedades a evaluar por cada mutación en el proceso de clasificación. Además, otro factor a destacar es el uso de SVM frente a otras alternativas, que han sido probadas y descartadas debido a su menor capacidad de predicción para nuestro caso de aplicación.REFERENCIAS[1] L. Wang and T. Jiang, “On the complexity of multiple sequence alignment,” Journal of computational biology, vol. 1, no. 4, pp. 337–348, 1994.[2] W. H. E. Day, D. S. Johnson, and D. Sankoff, “The Computational Complexity of Inferring Rooted Phylogenies by Parsimony,” Mathematical Biosciences, vol. 81, no. 1, pp. 33–42, 1986.[3] S. Roch, “A short proof that phylogenetic tree reconstruction by maximum likelihood is hard,” IEEE/ACM Transactions on Computational Biology and Bioinformatics (TCBB), vol. 3, no. 1, p. 92, 2006.[4] E. R. Mardis, “The impact of next-generation sequencing technology on genetics,” Trends in genetics, vol. 24, no. 3, pp. 133–141, 2008.[5] J. Álvarez-Jarreta, G. de Miguel Casado, and E. Mayordomo, “PhyloFlow: A Fully Customizable and Automatic Workflow for Phylogeny Estimation,” in ECCB 2014, 2014.[6] J. Álvarez-Jarreta, G. de Miguel Casado, and E. Mayordomo, “PhyloFlow: A Fully Customizable and Automatic Workflow for Phylogenetic Reconstruction,” in IEEE International Conference on Bioinformatics and Biomedicine (BIBM), pp. 1–7, IEEE, 2014.[7] J. Álvarez, R. Blanco, and E. Mayordomo, “Workflows with Model Selection: A Multilocus Approach to Phylogenetic Analysis,” in 5th International Conference on Practical Applications of Computational Biology & Bioinformatics (PACBB 2011), vol. 93 of Advances in Intelligent and Soft Computing, pp. 39–47, Springer Berlin Heidelberg, 2011.[8] J. Álvarez-Jarreta and E. Ruiz-Pesini, “MEvoLib v1.0: the First Molecular Evolution Library for Python,” BMC Bioinformatics, vol. 17, no. 436, pp. 1–8, 2016.[9] M. van Oven and M. Kayser, “Updated comprehensive phylogenetic tree of global human mitochondrial DNA variation,” Human Mutation, vol. 30, no. 2, pp. E386–E394, 2009.[10] J. Álvarez-Jarreta, E. Mayordomo, and E. Ruiz-Pesini, “PHYSER: An Algorithm to Detect Sequencing Errors from Phylogenetic Information,” in 6th International Conference on Practical Applications of Computational Biology & Bioinformatics (PACBB 2012), pp. 105–112, 2012.[11] J. Álvarez-Jarreta and G. de Miguel Casado, “PhyloViewer: A Phylogenetic Tree Viewer for Extense Phylogenies,” in ECCB 2014, 2014.[12] F. Merino-Casallo, J. Álvarez-Jarreta, and E. Mayordomo, “Conservation in mitochondrial DNA: Parallelized estimation and alignment influence,” in 2015 IEEE International Conference on Bioinformatics and Biomedicine (BIBM 2015), pp. 1434–1440, IEEE, 2015.[13] A. Martín-Navarro, A. Gaudioso-Simón, J. Álvarez-Jarreta, J. Montoya, E. Mayordomo, and E. Ruiz-Pesini, “Machine learning classifier for identification of damaging missense mutations exclusive to human mitochondrial DNA-encoded polypeptides,” BMC Bioinformatics, vol. 18, no. 158, pp. 1–11, 2017.<br /

    Parallel and Distributed Computing

    Get PDF
    The 14 chapters presented in this book cover a wide variety of representative works ranging from hardware design to application development. Particularly, the topics that are addressed are programmable and reconfigurable devices and systems, dependability of GPUs (General Purpose Units), network topologies, cache coherence protocols, resource allocation, scheduling algorithms, peertopeer networks, largescale network simulation, and parallel routines and algorithms. In this way, the articles included in this book constitute an excellent reference for engineers and researchers who have particular interests in each of these topics in parallel and distributed computing

    Models, Optimizations, and Tools for Large-Scale Phylogenetic Inference, Handling Sequence Uncertainty, and Taxonomic Validation

    Get PDF
    Das Konzept der Evolution ist in der modernen Biologie von zentraler Bedeutung. Deswegen liefert die Phylogenetik, die Lehre über die Verwandschaften und Abstam- mung von Organismen bzw. Spezies, entscheidende Hinweise zur Entschlüsselung einer Vielzahl biologischer Prozesse. Phylogenetische Stammbäume sind einerseits für die Grundlagenforschung wichtig, da sie in Studien über die Diversifizierung und Umweltanpassung einzelner Organismengruppen (z.B. Insekten oder Vögel) bis hin zu der großen Herausforderung, die Entstehung und Entwicklung aller Lebensfor- men in einem umfassenden evolutionären Baum darzustellen (der sog. Tree of Life) Anwendung finden. Andererseits werden phylogenetische Methoden auch in prax- isnahen Anwendungen eingesetzt, um beispielsweise die Verbreitungsdynamik von HIV-Infektionen oder, die Heterogenität der Krebszellen eines Tumors, zu verstehen. Den aktuellen Stand der Technik in der Stammbaumrekonstruktion stellen Meth- oden Maximum Likelihood (ML) und Bayes’sche Inferenz (BI) dar, welche auf der Analyse molekularer Sequenzendaten (DNA und Proteine) anhand probabilistis- cher Evolutionsmodelle basieren. Diese Methoden weisen eine hohe Laufzeitkom- plexität auf (N P -schwer), welche die Entwicklung effizienter Heuristiken unabding- bar macht. Hinzu kommt, dass die Berechnung der Zielfunktion (sog. Phylogenetic Likelihood Function, PLF) neben einem hohen Speicherverbrauch auch eine Vielzahl an Gleitkommaarithmetik-Operationen erfordert und somit extrem rechenaufwendig ist. Die neuesten Entwicklungen im Bereich der DNA-Sequenzierung (Next Gener- ation Sequencing, NGS) steigern kontinuierlich den Durchsatz und senken zugleich die Sequenzierungskosten um ein Vielfaches. Für die Phylogenetik hat dies zur Folge, dass die Dimensionen der zu analysierenden Datensätze alle 2–3 Jahre, um eine Grössenordnung zunhemen. War es bisher üblich, einige Dutzend bis Hun- derte Spezies anhand einzelner bzw. weniger Gene zu analysieren (Sequenzlänge: 1–10 Kilobasen), stellen derzeit Studien mit Tausenden Sequenzen oder Genen keine Seltenheit mehr dar. In den nächsten 1–2 Jahren ist zu erwarten, dass die Anal- ysen Tausender bis Zehntausender vollständiger Genome bzw. Transkriptome (Se- quenzlänge: 1–100 Megabasen und mehr) anstehen. Um diesen Aufgaben gewachsen zu sein, müssen die bestehenden Methoden weiterentwickelt und optimiert werden, um vor allem Höchstleistungsrechner sowie neue Hardware-Architekturen optimal nutzen zu können. Außerdem führt die sich beschleunigende Speicherung von Sequenzen in öffentli- chen Datenbanken wie NCBI GenBank (und ihren Derivaten) dazu, dass eine hohe Qualität der Sequenzannotierungen (z. B. Organismus- bzw. Speziesname, tax- onomische Klassifikation, Name eines Gens usw.) nicht zwangsläufig gewährleistet ist. Das hängt unter anderem auch damit zusammen, dass eine zeitnahe Korrektur durch entsprechende Experten nicht mehr möglich ist, solange ihnen keine adäquaten Software-Tools zur Verfügung stehen. In dieser Doktroarbeit leisten wir mehrere Beiträge zur Bewältigung der oben genannten Herausforderungen. Erstens haben wir ExaML, eine dedizierte Software zur ML-basierten Stamm- baumrekonstruktion für Höchstleistungsrechner, auf den Intel Xeon Phi Hardware- beschleuniger portiert. Der Xeon Phi bietet im Vergleich zu klassischen x86 CPUs eine höhere Rechenleistung, die allerdings nur anhand architekturspezifischer Op- timierungen vollständig genutzt werden kann. Aus diesem Grund haben wir zum einen die PLF-Berechnung für die 512-bit-Vektoreinheit des Xeon Phi umstrukturi- ert und optimiert. Zum anderen haben wir die in ExaML bereits vorhandene reine MPI-Parallelisierung durch eine hybride MPI/OpenMP-Lösung ersetzt. Diese hy- bride Lösung weist eine wesentlich bessere Skalierbarkeit für eine hohe Zahl von Kernen bzw. Threads innerhalb eines Rechenknotens auf (>100 HW-Threads für Xeon Phi). Des Weiteren haben wir eine neue Software zur ML-Baumrekonstruktion na- mens RAxML-NG entwickelt. Diese implementiert, bis auf kleinere Anpassungen, zwar denselben Suchalgorithmus wie das weit verbreitete Programm RAxML, bietet aber gegenüber RAxML mehrere Vorteile: (a) dank den sorgfältigen Optimierungen der PLF-Berechnung ist es gelungen, die Laufzeiten um den Faktor 2 bis 3 zu reduzieren (b) die Skalierbarkeit auf extrem großen Eingabedatensätzen wurde verbessert, in- dem ineffiziente topologische Operationen eliminiert bzw. optimiert wurden, (c) die bisher nur in ExaML verfügbaren, für große Datensätze relevanten Funktionen wie Checkpointing sowie ein dedizierter Datenverteilungsalgorithmus wurden nachimple- mentiert (d) dem Benutzer steht eine größere Auswahl an statistischen DNA-Evo- lutionsmodellen zur Verfügung, die zudem flexibler kombiniert und parametrisiert werden können (e) die Weiterentwicklung der Software wird aufgrund der modularen Architektur wesentlich erleichtert (die Funktionen zur PLF-Berechnung wurden in eine gesonderte Bibliothek ausgeglidert). Als nächstes haben wir untersucht, wie sich Sequenzierungsfehler auf die Genau- igkeit phylogenetischr Stammbaumrekonstruktionen auswirken. Wir modifizieren den RAxML bzw. RAxML-NG Code dahingehend, dass sowohl die explizite Angabe von Fehlerwahrscheinlichkeiten als auch die automatische Schätzung von Fehlerraten mittels der ML-Methode möglich ist. Unsere Simulationen zeigen: (a) Wenn die Fehler gleichverteilt sind, kann die Fehlerrate direkt aus den Sequenzdaten geschätzt werden. (b) Ab einer Fehlerrate von ca. 1% liefert die Baumrekonstruktion unter Berücksichtigung des Fehlermodells genauere Ergebnisse als die klassische Methode, welche die Eingabe als fehlerfrei annimmt. Ein weiterer Beitrag im Rahmen dieser Arbeit ist die Software-Pipeline SATIVA zur rechnergestützten Identifizierung und Korrektur fehlerhafter taxonomischer An- notierungen in großen Sequenzendatenbanken. Der Algorithmus funktioniert wie folgt: für jede Sequenz wird die Platzierung im Stammbaum mit dem höchst- möglichen Likelihood-Wert ermittelt und anschließend geprüft, ob diese mit der vorgegeben taxonomischen Klassifikation übereinstimmt. Ist dies nicht der Fall, wird also eine Sequenz beispielsweise innerhalb einer anderen Gattung platziert, wird die Sequenz als falsch annotiert gemeldet, und es wird eine entsprechende Umklassifizierung vorgeschlagen. Auf simulierten Datensätzen mit zufällig eingefüg- ten Fehlern, erreichte unsere Pipeline eine hohe Identifikationsquote (>90%) sowie Genauigkeit (>95%). Zur Evaluierung anhand empirischer Daten, haben wir vier öffentliche rRNA Datenbanken untersucht, welche zur Klassifizierung von Bakterien häufig als Referenz benutzt werden. Dabei haben wir je nach Datenbank 0.2% bis 2.5% aller Sequenzen als potenzielle Fehlannotierungen identifiziert

    Inference of Many-Taxon Phylogenies

    Get PDF
    Phylogenetic trees are tree topologies that represent the evolutionary history of a set of organisms. In this thesis, we address computational challenges related to the analysis of large-scale datasets with Maximum Likelihood based phylogenetic inference. We have approached this using different strategies: reduction of memory requirements, reduction of running time, and reduction of man-hours

    Characterizing and Accelerating Bioinformatics Workloads on Modern Microarchitectures

    Get PDF
    Bioinformatics, the use of computer techniques to analyze biological data, has been a particularly active research field in the last two decades. Advances in this field have contributed to the collection of enormous amounts of data, and the sheer amount of available data has started to overtake the processing capability possible with current computer systems. Clearly, computer architects need to have a better understanding of how bioinformatics applications work and what kind of architectural techniques could be used to accelerate these important scientific workloads on future processors. In this dissertation, we develop a bioinformatic benchmark suite and provide a detailed characterization of these applications in common use today from a computer architect's point of view. We analyze a wide range of detailed execution characteristics including instruction mix, IPC measurements, L1 and L2 cache misses on a real architecture; and proceed to analyze the workloads' memory access characteristics. We then concentrate on accelerating a particularly computationally intensive bioinformatics workload on the novel Cell Broadband Engine multiprocessor architecture. The HMMER workload is used for protein profile searching using hidden Markov models, and most of its execution time is spent running the Viterbi algorithm. We parallelize and partition the HMMER application to implement it on the Cell Broadband Engine. In order to run the Viterbi algorithm on the 256KB local stores of the Cell BE synergistic processing units (SPEs), we present a method to develop a fast SIMD implementation of the Viterbi algorithm that reduces the storage requirements significantly. Our HMMER implementation for the Cell BE architecture, Cell-HMMER, exploits the multiple levels of parallelism inherent in this application, and can run protein profile searches up to 27.98 times faster than a modern dual-core x86 microprocessor

    On the design of architecture-aware algorithms for emerging applications

    Get PDF
    This dissertation maps various kernels and applications to a spectrum of programming models and architectures and also presents architecture-aware algorithms for different systems. The kernels and applications discussed in this dissertation have widely varying computational characteristics. For example, we consider both dense numerical computations and sparse graph algorithms. This dissertation also covers emerging applications from image processing, complex network analysis, and computational biology. We map these problems to diverse multicore processors and manycore accelerators. We also use new programming models (such as Transactional Memory, MapReduce, and Intel TBB) to address the performance and productivity challenges in the problems. Our experiences highlight the importance of mapping applications to appropriate programming models and architectures. We also find several limitations of current system software and architectures and directions to improve those. The discussion focuses on system software and architectural support for nested irregular parallelism, Transactional Memory, and hybrid data transfer mechanisms. We believe that the complexity of parallel programming can be significantly reduced via collaborative efforts among researchers and practitioners from different domains. This dissertation participates in the efforts by providing benchmarks and suggestions to improve system software and architectures.Ph.D.Committee Chair: Bader, David; Committee Member: Hong, Bo; Committee Member: Riley, George; Committee Member: Vuduc, Richard; Committee Member: Wills, Scot
    corecore