2 research outputs found

    Main memory and cache performance of Intel Sandy

    Get PDF
    Abstract Application performance on multicore processors is seldom constrained by the speed of floating point or integer units. Much more often, limitations are caused by the memory subsystem, particularly shared resources such as last level caches or memory controllers. Measuring, predicting and modeling memory performance becomes a steeper challenge with each new processor generation due to the growing complexity and core count. We tackle the important aspect of measuring and understanding undocumented memory performance numbers in order to create valuable insight into microprocessor details. For this, we build upon a set of sophisticated benchmarks that support latency and bandwidth measurements to arbitrary locations in the memory subsystem. These benchmarks are extended to support AVX instructions for bandwidth measurements and to integrate the coherence states (O)wned and (F)orward. We then use these benchmarks to perform an indepth analysis of current ccNUMA multiprocessor systems with Intel (Sandy Bridge-EP) and AMD (Bulldozer) processors. Using our benchmarks we present fundamental memory performance data and illustrate performance-relevant architectural properties of both designs

    Análisis de rendimiento de aplicaciones paralelas de memoria compartida : problema N-body

    Get PDF
    Este trabajo analiza el rendimiento de cuatro nodos de cómputo multiprocesador de memoria compartida para resolver el problema N-body. Se paraleliza el algoritmo serie, y se codifica usando el lenguaje C extendido con OpenMP. El resultado son dos variantes que obedecen a dos criterios de optimización diferentes: minimizar los requisitos de memoria y minimizar el volumen de cómputo. Posteriormente, se realiza un proceso de análisis de las prestaciones del programa sobre los nodos de cómputo. Se modela el rendimiento de las variantes secuenciales y paralelas de la aplicación, y de los nodos de cómputo; se instrumentan y ejecutan los programas para obtener resultados en forma de varias métricas; finalmente se muestran e interpretan los resultados, proporcionando claves que explican ineficiencias y cuellos de botella en el rendimiento y posibles líneas de mejora. La experiencia de este estudio concreto ha permitido esbozar una incipiente metodología de análisis de rendimiento, identificación de problemas y sintonización de algoritmos a nodos de cómputo multiprocesador de memoria compartida.Aquest treball analitza el rendiment de quatre nodes de còmput multiprocessador de memòria compartida per resoldre el problema N-body. Es paral·lelitza l'algoritme sèrie, i es codifica utilitzant el llenguatge C estès amb OpenMP. El resultat són dues variants que obeeixen a dos criteris d'optimització diferents: minimitzar els requisits de memòria i minimitzar el volum de còmput. Posteriorment, es realitza un procés d'anàlisis de les prestacions del programa sobre els nodes de còmput. Es modela el rendiment de les variants seqüencials i paral·leles de l'aplicació, i dels nodes de còmput; s'instrumenten i s'executen els programes per obtenir resultats en forma de diverses mètriques; finalment es mostren i s'interpreten els resultats, proporcionant claus que expliquen ineficiències i colls d'ampolla en el rendiment i possibles línies de millora. L'experiència d'aquest estudi concret ha permès esbossar una incipient metodologia d'anàlisis de rendiment, identificació de problemes i sintonització d'algoritmes a nodes de còmput multiprocessador de memòria compartida.This research analyzes the performance of four, shared-memory, multiprocessor, computing nodes solving the N-body problem. The sequential algorithm is parallelized and coded using the C language extended by OpenMP. Two program variations are designed, obeying two different optimization goals: minimize memory requirements and minimize the amount of computation. Subsequently, we analyze the program's performance over the computation nodes. We model the performance of the serial and parallel applications and the performance of the computing nodes; the programs are implemented and executed to obtain results in form of several metrics; finally, results are displayed and interpreted, providing keys to explain the performance inefficiencies and bottlenecks, and showing possible areas for improvement. The experience of this study has made possible an incipient methodology to analyze performance, to identify problems, and to tune an algorithm on shared memory multiprocessor nodes
    corecore