36 research outputs found

    Memory-Optimised Parallel Processing of Hi-C Data

    Get PDF
    Abstract—This paper presents the optimisation efforts on the creation of a graph-based mapping representation of gene adjacency. The method is based on the Hi-C process, starting from Next Generation Sequencing data, and it analyses a huge amount of static data in order to produce maps for one or more genes. Straightforward parallelisation of this scheme does not yield acceptable performance on multicore architectures since the scalability is rather limited due to the memory bound nature of the problem. This work focuses on the memory optimisations that can be applied to the graph construction algorithm and its (complex) data structures to derive a cache-oblivious algorithm and eventually to improve the memory bandwidth utilisation. We used as running example NuChart-II, a tool for annotation and statistic analysis of Hi-C data that creates a gene-centric neigh-borhood graph. The proposed approach, which is exemplified for Hi-C, addresses several common issue in the parallelisation of memory bound algorithms for multicore. Results show that the proposed approach is able to increase the parallel speedup from 7x to 22x (on a 32-core platform). Finally, the proposed C++ implementation outperforms the first R NuChart prototype, by which it was not possible to complete the graph generation because of strong memory-saturation problems. I

    Soft Computing Techiniques for the Protein Folding Problem on High Performance Computing Architectures

    Get PDF
    The protein-folding problem has been extensively studied during the last fifty years. The understanding of the dynamics of global shape of a protein and the influence on its biological function can help us to discover new and more effective drugs to deal with diseases of pharmacological relevance. Different computational approaches have been developed by different researchers in order to foresee the threedimensional arrangement of atoms of proteins from their sequences. However, the computational complexity of this problem makes mandatory the search for new models, novel algorithmic strategies and hardware platforms that provide solutions in a reasonable time frame. We present in this revision work the past and last tendencies regarding protein folding simulations from both perspectives; hardware and software. Of particular interest to us are both the use of inexact solutions to this computationally hard problem as well as which hardware platforms have been used for running this kind of Soft Computing techniques.This work is jointly supported by the FundaciónSéneca (Agencia Regional de Ciencia y Tecnología, Región de Murcia) under grants 15290/PI/2010 and 18946/JLI/13, by the Spanish MEC and European Commission FEDER under grant with reference TEC2012-37945-C02-02 and TIN2012-31345, by the Nils Coordinated Mobility under grant 012-ABEL-CM-2014A, in part financed by the European Regional Development Fund (ERDF). We also thank NVIDIA for hardware donation within UCAM GPU educational and research centers.Ingeniería, Industria y Construcció

    Locality Enhancement and Dynamic Optimizations on Multi-Core and GPU

    Get PDF
    Enhancing the match between software executions and hardware features is key to computing efficiency. The match is a continuously evolving and challenging problem. This dissertation focuses on the development of programming system support for exploiting two key features of modern hardware development: the massive parallelism of emerging computational accelerators such as Graphic Processing Units (GPU), and the non-uniformity of cache sharing in modern multicore processors. They are respectively driven by the important role of accelerators in today\u27s general-purpose computing and the ultimate importance of memory performance. This dissertation particularly concentrates on optimizing control flows and memory references, at both compilation and execution time, to tap into the full potential of pure software solutions in taking advantage of the two key hardware features.;Conditional branches cause divergences in program control flows, which may result in serious performance degradation on massively data-parallel GPU architectures with Single Instruction Multiple Data (SIMD) parallelism. On such an architecture, control divergence may force computing units to stay idle for a substantial time, throttling system throughput by orders of magnitude. This dissertation provides an extensive exploration of the solution to this problem and presents program level transformations based upon two fundamental techniques --- thread relocation and data relocation. These two optimizations provide fundamental support for swapping jobs among threads so that the control flow paths of threads converge within every SIMD thread group.;In memory performance, this dissertation concentrates on two aspects: the influence of nonuniform sharing on multithreading applications, and the optimization of irregular memory references on GPUs. In shared cache multicore chips, interactions among threads are complicated due to the interplay of cache contention and synergistic prefetching. This dissertation presents the first systematic study on the influence of non-uniform shared cache on contemporary parallel programs, reveals the mismatch between the software development and underlying cache sharing hierarchies, and further demonstrates it by proposing and applying cache-sharing-aware data transformations that bring significant performance improvement. For the second aspect, the efficiency of GPU accelerators is sensitive to irregular memory references, which refer to the memory references whose access patterns remain unknown until execution time (e.g., A[P[i]]). The root causes of the irregular memory reference problem are similar to that of the control flow problem, while in a more general and complex form. I developed a framework, named G-Streamline, as a unified software solution to dynamic irregularities in GPU computing. It treats both types of irregularities at the same time in a holistic fashion, maximizing the whole-program performance by resolving conflicts among optimizations

    AI Enabled Drug Design and Side Effect Prediction Powered by Multi-Objective Evolutionary Algorithms & Transformer Models

    Get PDF
    Due to the large search space and conflicting objectives, drug design and discovery is a difficult problem for which new machine learning (ML) approaches are required. Here, the problem is to invent a method by which new, therapeutically useful, compounds can be discovered; and to simultaneously avoid compounds which will fail clinical trials or pass unwanted effects onto the end patient. By extending current technologies as well as adding new ones, more design criteria can be included, and more promising novel drugs can be discovered. This work advances the field of computational drug design by (1) developing MOEA-DT, a non-deep learning application for multi-objective molecular optimization, which generates new molecules with high performance in a variety of design criteria; and (2) developing SEMTL-BERT, a side effect prediction algorithm which leverages the latest ML techniques and datasets to accomplish its task. Experiments performed show that MOEA-DT either matches or outperforms other similar methods, and that SEMTL-BERT can enhance predictive ability

    Performance and Energy Optimization of the Iterative Solution of Sparse Linear Systems on Multicore Processors

    Get PDF
    En esta tesis doctoral se aborda la solución de sistemas dispersos de ecuaciones lineales utilizando métodos iterativos precondicionados basados en subespacios de Krylov. En concreto, se centra en ILUPACK, una biblioteca que implementa precondicionadores de tipo ILU multinivel para la solución eficiente de sistemas lineales dispersos. El incremento en el número de ecuaciones, y la aparición de nuevas arquitecturas, motiva el desarrollo de una versión paralela de ILUPACK que optimice tanto el tiempo de ejecución como el consumo energético en arquitecturas multinúcleo actuales y en clusters de nodos construidos con esta tecnología. El objetivo principal de la tesis es el diseño, implementación y valuación de resolutores paralelos energéticamente eficientes para sistemas lineales dispersos orientados a procesadores multinúcleo así como aceleradores hardware como el Intel Xeon Phi. Para lograr este objetivo, se aprovecha el paralelismo de tareas mediante OmpSs y MPI, y se desarrolla un entorno automático para detectar ineficiencias energéticas.In this dissertation we target the solution of large sparse systems of linear equations using preconditioned iterative methods based on Krylov subspaces. Specifically, we focus on ILUPACK, a library that offers multi-level ILU preconditioners for the effective solution of sparse linear systems. The increase of the number of equations and the introduction of new HPC architectures motivates us to develop a parallel version of ILUPACK which optimizes both execution time and energy consumption on current multicore architectures and clusters of nodes built from this type of technology. Thus, the main goal of this thesis is the design, implementation and evaluation of parallel and energy-efficient iterative sparse linear system solvers for multicore processors as well as recent manycore accelerators such as the Intel Xeon Phi. To fulfill the general objective, we optimize ILUPACK exploiting task parallelism via OmpSs and MPI, and also develope an automatic framework to detect energy inefficiencies

    EMPIRICAL ASSESSMENT OF THE IMPACT OF USING AUTOMATIC STATIC ANALYSIS ON CODE QUALITY

    Get PDF
    Automatic static analysis (ASA) tools analyze the source or compiled code looking for violations of recommended programming practices (called issues) that might cause faults or might degrade some dimensions of software quality. Antonio Vetro' has focused his PhD in studying how applying ASA impacts software quality, taking as reference point the different quality dimensions specified by the standard ISO/IEC 25010. The epistemological approach he used is that one of empirical software engineering. During his three years PhD, he's been conducting experiments and case studies on three main areas: Functionality/Reliability, Performance and Maintainability. He empirically proved that specific ASA issues had impact on these quality characteristics in the contexts under study: thus, removing them from the code resulted in a quality improvement. Vetro' has also investigated and proposed new research directions for this field: using ASA to improve software energy efficiency and to detect the problems deriving from the interaction of multiple languages. The contribution is enriched with the final recommendation of a generalized process for researchers and practitioners with a twofold goal: improve software quality through ASA and create a body of knowledge on the impact of using ASA on specific software quality dimensions, based on empirical evidence. This thesis represents a first step towards this goa

    Towards a framework for socially interactive robots

    Get PDF
    250 p.En las últimas décadas, la investigación en el campo de la robótica social ha crecido considerablemente. El desarrollo de diferentes tipos de robots y sus roles dentro de la sociedad se están expandiendo poco a poco. Los robots dotados de habilidades sociales pretenden ser utilizados para diferentes aplicaciones; por ejemplo, como profesores interactivos y asistentes educativos, para apoyar el manejo de la diabetes en niños, para ayudar a personas mayores con necesidades especiales, como actores interactivos en el teatro o incluso como asistentes en hoteles y centros comerciales.El equipo de investigación RSAIT ha estado trabajando en varias áreas de la robótica, en particular,en arquitecturas de control, exploración y navegación de robots, aprendizaje automático y visión por computador. El trabajo presentado en este trabajo de investigación tiene como objetivo añadir una nueva capa al desarrollo anterior, la capa de interacción humano-robot que se centra en las capacidades sociales que un robot debe mostrar al interactuar con personas, como expresar y percibir emociones, mostrar un alto nivel de diálogo, aprender modelos de otros agentes, establecer y mantener relaciones sociales, usar medios naturales de comunicación (mirada, gestos, etc.),mostrar personalidad y carácter distintivos y aprender competencias sociales.En esta tesis doctoral, tratamos de aportar nuestro grano de arena a las preguntas básicas que surgen cuando pensamos en robots sociales: (1) ¿Cómo nos comunicamos (u operamos) los humanos con los robots sociales?; y (2) ¿Cómo actúan los robots sociales con nosotros? En esa línea, el trabajo se ha desarrollado en dos fases: en la primera, nos hemos centrado en explorar desde un punto de vista práctico varias formas que los humanos utilizan para comunicarse con los robots de una maneranatural. En la segunda además, hemos investigado cómo los robots sociales deben actuar con el usuario.Con respecto a la primera fase, hemos desarrollado tres interfaces de usuario naturales que pretenden hacer que la interacción con los robots sociales sea más natural. Para probar tales interfaces se han desarrollado dos aplicaciones de diferente uso: robots guía y un sistema de controlde robot humanoides con fines de entretenimiento. Trabajar en esas aplicaciones nos ha permitido dotar a nuestros robots con algunas habilidades básicas, como la navegación, la comunicación entre robots y el reconocimiento de voz y las capacidades de comprensión.Por otro lado, en la segunda fase nos hemos centrado en la identificación y el desarrollo de los módulos básicos de comportamiento que este tipo de robots necesitan para ser socialmente creíbles y confiables mientras actúan como agentes sociales. Se ha desarrollado una arquitectura(framework) para robots socialmente interactivos que permite a los robots expresar diferentes tipos de emociones y mostrar un lenguaje corporal natural similar al humano según la tarea a realizar y lascondiciones ambientales.La validación de los diferentes estados de desarrollo de nuestros robots sociales se ha realizado mediante representaciones públicas. La exposición de nuestros robots al público en esas actuaciones se ha convertido en una herramienta esencial para medir cualitativamente la aceptación social de los prototipos que estamos desarrollando. De la misma manera que los robots necesitan un cuerpo físico para interactuar con el entorno y convertirse en inteligentes, los robots sociales necesitan participar socialmente en tareas reales para las que han sido desarrollados, para así poder mejorar su sociabilida

    A generic software architecture for portable applications in heterogeneous wireless sensor networks

    Get PDF
    In the last years, wireless sensor networks (WSNs) are acquiring more importance as a promising technology based on tiny devices called sensor nodes or motes able to monitor a wide range of physical phenomenon through sensors. Numerous branches of science are being benefited. The intrinsic ubiquity of sensor nodes and the absence of network infrastructure make possible their deployment in hostile or, up to now, unknown environments which have been typically unaccessible for humans such as volcanos or glaciers, providing precise and up-to-date data. As potential applications continue arising, both new technical and conceptual challenges appear. The severe hardware restrictions of sensor nodes in relation to computation, communication and specifically, energy, have posed new and exciting requirements. In particular, research is moving towards heterogeneous networks that will contain different devices running custom WSN operating systems. Operating systems specifically designed for sensor nodes are intended to efficiently manage the hardware resources and facilitate the programming. Nevertheless, they often lack the generality and the high-level abstractions expected at this abstraction layer. Consequently, they do not completely hide either the underlying platform or its execution model, making the applications programming close to operating system and thus reducing the portability. This thesis focuses on the portability of applications in heterogeneous wireless sensor networks. To contribute to this important challenge the thesis proposes a generic software architecture based on sensor node, which supports the process of applications development by homogenizing and facilitating the access to different WSN operating systems. Specifically, the next main objectives have been established. * Designing and implementing a generic sensor node-centric architecture distinguishing clearly the different abstraction levels in a sensor node. The architecture should be flexible enough in order to incorporate high-level abstractions which facilitate the the programming. * As part of the architecture, constructing an intermediate layer between applications and sensor node operating system. This layer is intended to abstract away the operating system by demultiplexing a set of homogeneous services and mapping them into operating system-specific requests. To achieve this, programming language extensions have to be also specified on top of the architecture, in order to write portable applications. In this way, platform-specific code can be generated from these high-level applications for di erent sensor node platforms. In this way, architecture deals with the problem of heterogeneity and portability. * Evaluating the feasibility of incorporating the abstractions above mentioned within the development process in terms of portability, efficiency and productivity. In this environment the footprint is a specially critical issue, due to the hardware limitations. In fact, an excessive overhead of applications size could make prohibitive the proposed solution. The thesis presents a generic software architecture for portable applications in heterogeneous wireless sensor networks. The proposed solution and its evaluation is described in this document. Theoretical and practical contributions of this thesis and the main future research directions are also presented.-------------------------------------------------------------------------------------------------------------------------En los últimos años, las redes de sensores inalámbricas han adquirido cada vez mayor protagonismo y se han erigido como una prometedora tecnología basada en dispositivos pequeños denominados nodos sensores o motes, que son capaces de monitorizar fenómenos físicos a través de diferentes sensores. Un gran número de diferentes ramas de las ciencias podrían verse beneficiadas. La naturaleza ubicua de los nodos además de la ausencia de una infraestructura de red, hacen posible la instalación de estas redes en terrenos inhóspitos y típicamente inaccesibles para los seres humanos, como por ejemplo glaciares o volcanes, para proporcionar un conocimiento preciso y actualizado. A medida que continúan apareciendo diferentes aplicaciones potenciales, surgen nuevos retos tanto técnicos como conceptuales. Las restricciones severas de los recursos en términos de cómputo, comunicación y, sobre todo, energía, plantean nuevos requerimientos. En particular, la investigación tiende a crear redes heterogéneas que incluyen diferentes dispositivos de hardware e integran sistemas operativos desarrollados ad-hoc. Los sistemas operativos específicamente diseñados para nodos sensores han sido concebidos para gestionar eficientemente sus recursos de hardware y facilitar la programación. Sin embargo, a menudo carecen de la generalidad y de las abstracciones de alto nivel esperadas en esta capa de abstracción. Por tanto, los sistemas operativos no enmascaran completamente su modelo de ejecución ni la plataforma subyacente, convirtiendo la programación de aplicaciones en fuertemente acoplada al sistema operativo y, consecuentemente, reduciendo la portabilidad. Esta tesis se centra en la portabilidad de aplicaciones en redes de sensores inalámbricas heterogéneas. Con el objeto de contribuir a este relevante ámbito de estudio, la tesis propone una arquitectura de software genérica basada en nodo sensor, la cual soporta el proceso de desarrollo de aplicaciones homogeneizando y facilitando el acceso a diferentes sistemas operativos de nodos sensores. Específicamente, se han establecido los siguientes objetivos principales: * Diseñar e implementar una arquitectura genérica de nodo sensor distinguiendo con claridad los diferentes niveles de abstracción del nodo sensor. La arquitectura propuesta debería ser flexible para poder incorporar nuevas abstracciones de alto nivel que faciliten la programación de las aplicaciones. * Como parte de la arquitectura, deberá construirse una capa de abstracción localizada entre las aplicaciones y el sistema operativo. Su objetivo es abstraer el sistema operativo subyacente mediante un conjunto de servicios homogéneos que puedan ser mapeados en servicios específicos del sistema operativo. Para ello se deberá especificar en la capa superior de la arquitectura el conjunto de extensiones del lenguaje de programación que permitan escribir aplicaciones portables. Consecuentemente, el código específico de la plataforma puede ser generado a partir de las aplicaciones de alto nivel para diferentes plataformas de nodos sensores. De esta manera, la arquitectura trata los problemas de portabilidad y heterogeneidad en la construcción de aplicaciones. * Evaluar la factibilidad de incorporar las abstracciones previamente mencionadas para ser usadas dentro del proceso de desarrollo de aplicaciones, en términos de portabilidad, eficiencia y productividad. En el entorno de las redes de sensores, el consumo eficiente de los recursos de hardware es un aspecto crítico debido al presupuesto limitado del hardware. De hecho, una sobrecarga excesiva haría prohibitiva e inviable la propuesta. Esta tesis describe una arquitectura de software genérica para aplicaciones portables en redes de sensores inalámbricas heterogéneas. La solución propuesta y su evaluación se presentan en este documento. Las contribuciones teóricas y prácticas de esta tesis serán analizadas, así como las líneas futuras de investigación que derivan de este trabajo
    corecore