16 research outputs found

    Automatic SMT threading for OpenMP applications on the Intel Xeon Phi co-processor

    Get PDF
    Simultaneous multithreading is a technique that can improve performance when running parallel applications on the Intel Xeon Phi co-processor. Selecting the most efficient thread count is however non-trivial, as the potential increase in efficiency has to be balanced against other, potentially negative factors such as inter-thread competition for cache capacity and increased synchronization overheads. In this paper, we extend CRUST (ClusteR-aware Under-subscribed Scheduling of Threads), a technique for finding the optimum thread count of OpenMP applications running on clustered cache architectures, to take the behavior of simultaneous multithreading on the Xeon Phi into account. CRUST can automatically find the optimum thread count at sub-application granularity by exploiting application phase behavior at OpenMP parallel section boundaries, and uses hardware performance counter information to gain insight into the application's behavior. We implement a CRUST prototype inside the Intel OpenMP runtime library and show its efficiency running on real Xeon Phi hardware

    Proposta de uma arquitetura multi-threading voltada para sistemas multi processos

    Get PDF
    Este artigo propõe o desenvolvimento de uma arquitetura multi-threading capaz de extrair tanto o paralelismo ao nível de instruções quanto aquele disponível entre os diferentes processos executados pelos sistemas operacionais nas estações de trabalho compartilhadas e servidores de rede. A arquitetura proposta alivia o sistema operacional das atividades mais onerosas em consumo de tempo de cpu, tais como escalonamento e troca de contexto entre processos. Aqui são apresentados os principais componentes da arquitetura, bem como os algoritmos básicos a serem executados pelos estágios do pipeline superescalar.Sistemas Distribuidos - Redes ConcurrenciaRed de Universidades con Carreras en Informática (RedUNCI

    Proposta de uma arquitetura multi-threading voltada para sistemas multi processos

    Get PDF
    Este artigo propõe o desenvolvimento de uma arquitetura multi-threading capaz de extrair tanto o paralelismo ao nível de instruções quanto aquele disponível entre os diferentes processos executados pelos sistemas operacionais nas estações de trabalho compartilhadas e servidores de rede. A arquitetura proposta alivia o sistema operacional das atividades mais onerosas em consumo de tempo de cpu, tais como escalonamento e troca de contexto entre processos. Aqui são apresentados os principais componentes da arquitetura, bem como os algoritmos básicos a serem executados pelos estágios do pipeline superescalar.Sistemas Distribuidos - Redes ConcurrenciaRed de Universidades con Carreras en Informática (RedUNCI

    Nanopore Sequencing Technology and Tools for Genome Assembly: Computational Analysis of the Current State, Bottlenecks and Future Directions

    Full text link
    Nanopore sequencing technology has the potential to render other sequencing technologies obsolete with its ability to generate long reads and provide portability. However, high error rates of the technology pose a challenge while generating accurate genome assemblies. The tools used for nanopore sequence analysis are of critical importance as they should overcome the high error rates of the technology. Our goal in this work is to comprehensively analyze current publicly available tools for nanopore sequence analysis to understand their advantages, disadvantages, and performance bottlenecks. It is important to understand where the current tools do not perform well to develop better tools. To this end, we 1) analyze the multiple steps and the associated tools in the genome assembly pipeline using nanopore sequence data, and 2) provide guidelines for determining the appropriate tools for each step. We analyze various combinations of different tools and expose the tradeoffs between accuracy, performance, memory usage and scalability. We conclude that our observations can guide researchers and practitioners in making conscious and effective choices for each step of the genome assembly pipeline using nanopore sequence data. Also, with the help of bottlenecks we have found, developers can improve the current tools or build new ones that are both accurate and fast, in order to overcome the high error rates of the nanopore sequencing technology.Comment: To appear in Briefings in Bioinformatics (BIB), 201

    Multithreading en entornos de ejecución multitarea

    Get PDF
    Un amplio espectro de los entornos en los que se usan las estaciones de trabajo y los computadores personales requiere de la ejecución de múltiples tareas diferentes durante un mismo intervalo de tiempo. Sin embargo, la mayoría de los procesadores actuales están diseñados para minimizar el tiempo de ejecución de una única tarea, e implementan un modelo de ejecución superescalar que usa el paralelismo entre las instrucciones de la tarea para ejecutar varias instrucciones simultáneamente. Estos procesadores ejecutan varias tareas diferentes intercambiando la tarea en ejecución a lo largo del tiempo. El objeto de este artículo es mostrar que para los entornos de ejecución multitarea existen mejores alternativas que los procesadores actuales. Analizamos los requerimientos de estos entornos y las ventajas que presentan los procesadores multithreaded (MT). En primer lugar, la medida fundamental de las prestaciones ya no es el tiempo de ejecución final de cada tarea sino la cantidad de tareas realizadas por unidad de tiempo o productividad (``throughput''). Los procesadores MT soportan a nivel del repertorio de instrucciones la ejecución explícita de varios flujos de control, o threads, reduciendo el tiempo que se pierde al realizar los cambios de contexto. Si además el procesador MT es capaz de ejecutar varias instrucciones de tareas diferentes durante cada ciclo de reloj, compartiendo los recursos del procesador, se puede usar este paralelismo extra para incrementar la productividad del sistema. Una opción básica de diseño es cómo compartir los recursos del procesador entre las tareas activas del procesador. Existen microarquitecturas que permiten compartir entre las tareas prácticamente todos los recursos del procesador, como el simultaneous multithreading (SMT), y otras donde un grupo de recursos está reservado a una única tarea, como el multiprocesamiento en un chip (CMP). En este artículo analizamos otras soluciones intermedias, con un mejor compromiso entre la complejidad del SMT y el relativamente bajo rendimiento del CMP. La asignación de los recursos compartidos del procesador a las tareas activas se realiza dinámicamente, en tiempo de ejecución y ciclo a ciclo. Se analizan los problemas ocasionados por la interferencia entre tareas que comparten recursos, especialmente la memoria cache, y se proponen formas de organizar esta compartición para reducir los problemas. Finalmente, se plantea un modelo cualitativo tanto de las microarquitecturas como de las aplicaciones, con objeto de detectar posibles cuellos de botella, de hacer una primera valoración de las diferentes opciones de diseño y de realizar una aproximación teórica a los resultados cuantitativos que se esperan obtener.Sistemas Distribuidos - Redes ConcurrenciaRed de Universidades con Carreras en Informática (RedUNCI

    Multithreading en entornos de ejecución multitarea

    Get PDF
    Un amplio espectro de los entornos en los que se usan las estaciones de trabajo y los computadores personales requiere de la ejecución de múltiples tareas diferentes durante un mismo intervalo de tiempo. Sin embargo, la mayoría de los procesadores actuales están diseñados para minimizar el tiempo de ejecución de una única tarea, e implementan un modelo de ejecución superescalar que usa el paralelismo entre las instrucciones de la tarea para ejecutar varias instrucciones simultáneamente. Estos procesadores ejecutan varias tareas diferentes intercambiando la tarea en ejecución a lo largo del tiempo. El objeto de este artículo es mostrar que para los entornos de ejecución multitarea existen mejores alternativas que los procesadores actuales. Analizamos los requerimientos de estos entornos y las ventajas que presentan los procesadores multithreaded (MT). En primer lugar, la medida fundamental de las prestaciones ya no es el tiempo de ejecución final de cada tarea sino la cantidad de tareas realizadas por unidad de tiempo o productividad (``throughput''). Los procesadores MT soportan a nivel del repertorio de instrucciones la ejecución explícita de varios flujos de control, o threads, reduciendo el tiempo que se pierde al realizar los cambios de contexto. Si además el procesador MT es capaz de ejecutar varias instrucciones de tareas diferentes durante cada ciclo de reloj, compartiendo los recursos del procesador, se puede usar este paralelismo extra para incrementar la productividad del sistema. Una opción básica de diseño es cómo compartir los recursos del procesador entre las tareas activas del procesador. Existen microarquitecturas que permiten compartir entre las tareas prácticamente todos los recursos del procesador, como el simultaneous multithreading (SMT), y otras donde un grupo de recursos está reservado a una única tarea, como el multiprocesamiento en un chip (CMP). En este artículo analizamos otras soluciones intermedias, con un mejor compromiso entre la complejidad del SMT y el relativamente bajo rendimiento del CMP. La asignación de los recursos compartidos del procesador a las tareas activas se realiza dinámicamente, en tiempo de ejecución y ciclo a ciclo. Se analizan los problemas ocasionados por la interferencia entre tareas que comparten recursos, especialmente la memoria cache, y se proponen formas de organizar esta compartición para reducir los problemas. Finalmente, se plantea un modelo cualitativo tanto de las microarquitecturas como de las aplicaciones, con objeto de detectar posibles cuellos de botella, de hacer una primera valoración de las diferentes opciones de diseño y de realizar una aproximación teórica a los resultados cuantitativos que se esperan obtener.Sistemas Distribuidos - Redes ConcurrenciaRed de Universidades con Carreras en Informática (RedUNCI
    corecore