853 research outputs found
Asignación de Recursos Hardware en Multiprocesadores Integrados Basada en Estrategias de Mercado
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
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
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
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
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
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
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
Arquitecturas comerciales: hoja de ruta
presencial y onlin
Innovación docente en la asignatura de Arquitectura de Computadores mediante el uso de simuladores
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
- …