853 research outputs found

    Asignación de Recursos Hardware en Multiprocesadores Integrados Basada en Estrategias de Mercado

    Get PDF
    Conferencia dentro del ciclo de conferencias anual del Departamento de Arquitectura de ComputadoresLa asignación de recursos hardware compartidos es una tarea crítica para la optimización de la ejecución en multiprocesadores integrados. Las técnicas propuestas en la literatura con frecuencia utilizan mecanismos centralizados de búsqueda global de puntos de operación óptimos. Desafortunadamente, este tipo de mecanismo es difícil de aplicar a multiprocesadores integrados de gran escala sin caer en una sobrecarga prohibitiva, hasta el punto de degradar, en lugar de mejorar, el tiempo de ejecución. En esta charla hablaré de XChange, un nuevo mecanismo de asignación de recursos hardware escalable que aporta importantes beneficios en rendimiento y equidad a las aplicaciones que corren en multiprocesadores integrados de gran escala. En XChange el multiprocesador integrado funciona como un mercado, donde cada recurso compartido tiene un precio asignado que cambia dinámicamente en respuesta a fuerzas de oferta y demanda por parte de las aplicaciones. Cada procesador participa en el mercado de forma individualista, tratando de adquirir con un dinero virtual asignado los recursos necesarios para optimizar su propia ejecución. La clave para la escalabilidad de este mecanismo reside en que los procesadores calculan de forma independiente y en paralelo cuánto pujar por cada recurso. Una simple distribución de recursos proporcional a la demanda global facilita la convergencia hacia un equilibrio equitativo de forma eficiente.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech

    Animaciones interactivas para la enseñanza y aprendizaje de los protocolos de coherencia de cachés

    Get PDF
    Entre los objetivos formativos de los cursos avanzados de arquitectura de computadores suele estar el de que los estudiantes sean capaces de describir y analizar el funcionamiento de los protocolos de coherencia de cachés. Aunque dichos protocolos son relativamente sencillos, es necesario analizar muchas situaciones diferentes para entender cómo abordan todos los detalles del problema que quieren resolver. Lo que hace que sean complejos de explicar y de comprender. Una herramienta que ilustrara gráficamente el funcionamiento de dichos protocolos facilitaría enormemente su enseñanza/aprendizaje. Con objeto de mejorar la docencia de dicha materia, hemos desarrollado tres animaciones interactivas que muestran cómo funcionan tres de los protocolos de coherencia de caché más frecuentemente utilizados. Para cada protocolo, una serie de operaciones de lectura/escritura ilustran todas las posibles situaciones que pueden darse. Las animaciones permiten avanzar y retroceder para poder entender/estudiar mejor las acciones que tienen lugar en cada paso.SUMMARY: Among the educational objectives in advanced courses of computers architecture there is usually one that states that students should be able to describe and analyze how the cache coherence protocols work. Although these protocols are relatively simple, it is necessary to analyze many different situations to understand how they address all the details of the problem they solve. This makes them complex to be explained and to be understood. A tool that illustrates graphically the operation of these protocols should greatly facilitate the teaching/learning of these protocols. With the aim of improving the teaching on this subject, we have developed three interactive animations that show how some of the most frequently used cache coherence protocols work. For each protocol, a sequence of read and write operations illustrates all possible situations that can take place in each protocol. The tool is interactive in that the student can go forward and backward to understand/ study the different actions that occur at each step.Peer Reviewe

    Acelerando los momentos de Zernike sobre Kepler

    Get PDF
    Este trabajo analiza las características más avanzadas de la arquitectura Kepler de Nvidia, principalmente el paralelismo dinámico para el lanzamiento de kernels desde la GPU y la planificación de hilos con Hyper-Q. Posteriormente, ilustra diversas formas de aprovecharlas en un código que computa los momentos de Zernike, y que admite formulaciones directa y recursiva. Hemos podido así contrastar las posibilidades que ambas ofrecen para maximizar rendimiento en las nuevas GPUs, la primera desplegando todo el paralelismo, y la segunda aumentando la intensidad aritmética gracias a la amortización de resultados procedentes de iteraciones previas. Esto nos ha permitido aumentar los factores de aceleración que ya logramos anteriormente con arquitecturas Fermi frente a la versión C ejecutada en una CPU multicore de su misma generación. Logramos también identificar la carga de trabajo crítica que necesita un código para mejorar su ejecución en las nuevas plataformas dotadas de seis veces más núcleos computacionales, y cuantificar la sobrecarga introducida por los nuevos mecanismos de programación dinámica en CUDA.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tec

    Fundamentos y aplicación automática del paralelismo en inteligencia artificial

    Full text link
    En este trabajo se revisan conceptos y nociones básicas relacionadas con el paralelismo y se analiza tanto su relación con la Inteligencia Artificial, como las diferentes alternativas de aplicación en el desarrollo de sistemas inteligentes. En primer lugar se argumenta que los procesos típicos de la inteligencia artificial ofrecen posibilidades de explotación de paralelismo, siendo esta explotación una opción muy útil a la hora de incrementar la capacidad y efectividad de los sistemas inteligentes, contrarrestando así el alto coste computacional de los mismos. En segundo lugar se presentan resultados esperanzadores, en el sentido de que la hasta ahora ardua tarea de paralelizar un sistema pueda ser, al menos en parte, realizada automáticamente mediante un análisis en tiempo de compilación del programa que implementa dicho sistema. Para ello se presenta el estudio de un sistema real de paralelización automática de programas lógicos basado en el modelo de paralelismo-And independiente

    Algebra lineal en clusters basados en redes ethernet

    Get PDF
    Algunas de las ventajas que tienen las redes de computadoras utilizadas para cómputo paralelo (o clusters) son muy conocidas y de hecho se aprovechan en múltiples áreas de investigación y aplicación [3] [4] [11]:\n· Creciente potencia de cálculo, con costo casi constante o en algunos casos disminuyendo a medida que avanza el tiempo y la tecnología.\n· Creciente disponibilidad en el mercado de nuevas tecnologías, o al menos de tecnologías avanzadas a bajo costo (cómputo superescalar en las computadoras de escritorio, por ejemplo).\n· Creciente disponibilidad de sofware de uso libre y gratuito, que abarca desde sistemas operativos (Linux) hasta software de cálculo numérico especializado (LAPACK en el caso de los problemas provenientes del álgebra lineal).\n· Redes de interconexión muy simples de instalar en términos de hardware y software, a muy bajo costo y con amplia disponibilidad en el mercado.\n· Redes de computadoras ya instaladas que tienen “costo cero” al menos desde el punto de vista del hardware de cómputo paralelo disponible y aprovechable.Eje: Sistemas Distribuido

    Análisis de paralelización con memoria compartida y memoria distribuida en clusters de nodos con múltiples núcleos

    Get PDF
    En este trabajo se presentan las alternativas y los resultados de rendimiento obtenidos del análisis de las alternativas de paralelización en clusters de nodos con múltiples núcleos. El objetivo final es mostrar si es necesario tener en cuenta los dos modelos de procesamiento y paralelización (memoria compartida y memoria distribuida) o solamente uno de ellos. La aplicación utilizada es clásica en el contexto de cómputo de alto rendimiento: la multiplicación de matrices. Si bien esta operación es representativa de las aplicaciones de álgebra lineal, se muestran los resultados en términos de las condiciones bajo las cuales se puede optimizar rendimiento y hacia dónde debe estar enfocado el esfuerzo de la paralelización de algoritmos en los clusters de nodos con múltiples núcleos. Estos clusters son considerados como los estándares de bajo costo hoy en día, dado que casi cualquier máquina de escritorio con la que se construyen los clusters está basada en un procesador con más de un núcleo e, inclusive con más de un procesador. En cualquier caso, todas las unidades de procesamiento deberían ser utilizadas al máximo para optimizar el rendimiento obtenido por las aplicaciones paralelasThis article presents the alternatives and performance results obtained after analyzing parallelization alternatives in clusters of nodes with multiple cores. The ultimate goal is to show if both processing and parallelization models (shared memory and distributed memory) need to be taken into account, or if only one of them is enough. The application used is classical in the context of highperformance computing: matrix multiplication. Even though this operation is representative of linear algebra applications, results are shown in terms of the conditions under which performance can be optimized and where algorithm parallelization efforts should be focused on for clusters of nodes with multiple cores. These clusters are nowadays considered as low-cost standards, since almost any desktop computer used to build clusters is based on a multi-core processor, and even on multi-processors. In any case, all processing units should be used to their maximum to optimize the performance of parallel applications.Workshop de Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI

    Análisis del rendimiento de algoritmos paralelos de propósito general en GPGPU : Aplicación a un problema de mallado de elementos finitos

    Get PDF
    El objetivo de este trabajo es analizar el desarrollo, optimización y evaluación de algoritmos paralelos de propósito general cuya ejecución se implementa sobre la arquitectura de cómputo de alto rendimiento que ofrecen los multiprocesadores gráficos de las placas de video. Este tipo de arquitectura de cómputo, como las GPU de la placa de video NVIDIA, permite obtener mejoras significativas en el tiempo de procesamiento de aplicaciones no gráficas. Este objetivo es alcanzable con un uso eficiente de su modelo de memoria y de programación. En este trabajo se estudiará el rendimiento de un algoritmo de mallado de elementos finitos, cuya paralelización es adecuada para un modelo de programación paralela de memoria compartida. Este objetivo incluye determinar las técnicas de optimización del modelo de programación CUDA que hagan más eficiente el uso de los niveles de memoria de la GPU para esta aplicación y que permitan su escalado a unidades con mayor cantidad de multiprocesadores. El aporte de este trabajo es mostrar la ganancia obtenida con el uso de multiprocesadores gráficos al ejecutar aplicaciones paralelas de propósito general, que se caracterizan por proveer un alto paralelismo de datos. Como también exponer el potencial presente en las GPU, de eficiencia y escalabilidad, cuando se dan estas condiciones en la aplicación sobre la que se trabaja.Facultad de Informátic

    Innovación docente en la asignatura de Arquitectura de Computadores mediante el uso de simuladores

    Get PDF
    En la Universidad de Extremadura, durante el cuarto curso de la titulación de Ingeniero en Informática se imparte la asignatura de Arquitectura de Computadores. Los profesores de esta asignatura han apostado por la incorporación de nuevas tecnologías para ofrecer una mayor calidad en la docencia. En este sentido cabe destacar el desarrollo de simuladores específicos para prácticas dentro del campo de los multiprocesadores. Presentamos dos de estos simuladores. El simulador RedME para la simulación de redes multietapa, y el simulador SMPCache para la simulación de sistemas de memoria caché en multiprocesadores simétricos
    corecore