934 research outputs found
Lock-free Concurrent Data Structures
Concurrent data structures are the data sharing side of parallel programming.
Data structures give the means to the program to store data, but also provide
operations to the program to access and manipulate these data. These operations
are implemented through algorithms that have to be efficient. In the sequential
setting, data structures are crucially important for the performance of the
respective computation. In the parallel programming setting, their importance
becomes more crucial because of the increased use of data and resource sharing
for utilizing parallelism.
The first and main goal of this chapter is to provide a sufficient background
and intuition to help the interested reader to navigate in the complex research
area of lock-free data structures. The second goal is to offer the programmer
familiarity to the subject that will allow her to use truly concurrent methods.Comment: To appear in "Programming Multi-core and Many-core Computing
Systems", eds. S. Pllana and F. Xhafa, Wiley Series on Parallel and
Distributed Computin
Distributed shared memory on heterogeneous CPUs+GPUs platforms
Dissertação de mestrado em Engenharia InformáticaDesenvolver aplicações para plataformas heterogéneas pode dificultar
significativamente o processo de codificação, visto que o uso de dispositivos
de computação diferentes significa ter que lidar com arquiteturas
diferentes, modelos de programação e organização de memória
diversos, espaços de endereçamento de memória disjuntos, etc. Este
documento propõe que o processo de desenvolvimento pode ser simpli-
cado ao virtualizar um ambiente de memória partilhada tradicional
em cima de um sistema de memoria heterogéneo distribuído e expondo
um modelo de memória unificado ao programador. O sistema
de memória liberta o programador da gestão manual dos dados e permite o uso de memória dinâmica acessível por todos os dispositivos.
O sistema de memória proposto foi implementado e validado na frame-
work GAMA usando três algoritmos para testar o sistema: SAXPY,
simulação N-Body "all-pairs" e Barnes-Hut. Estes algoritmos foram
usados para avaliar o desempenho e a escalabilidade da framework
quando equipada com o sistema de memória proposto.
Os resultados mostram que, de uma forma geral, o sistema de memória
melhorou o desempenho de todos os algoritmos. O sistema de memória
provou ser mais útil em algoritmos com uma alta razão de computação
sobre acessos a memória e especialmente em algoritmos irregulares ao
melhorar também a escalabilidade. O alocador de memória paralelo
mostrou optimos resultados quando usado apenas no CPU, mas teve
problemas na velocidade de alocação quando foram adicionados GPUs
ao sistema.Developing for heterogeneous platforms can significantly complicate the coding process, since different processing devices mean different architectures, programming and memory models, disjoint address spaces and so on. This document proposes that the development process can be eased by virtualizing a traditional shared memory environment on top of the heterogeneous distributed system and exposing a unified memory model to the developer. The memory system frees the developer from having to manually manage data movements and allows the use of dynamic memory, accessible by all the devices.
The proposed memory system was implemented and validated on the GAMA framework using three algorithm to benchmark the system: SAXPY, all-pairs N-Body simulation and Barnes-Hut N-Body simulation. These algorithms were used to evaluate the framework performance and scalability when paired with the proposed memory system.
The results show that, overall, the memory system improved performance on all algorithm. The memory system proved most useful on algorithms with high ratio of computation over memory accesses by improving execution times and especially useful on irregular algorithms by improving also scalability. The parallel memory allocator showed great results when used only on CPU, but had speed issues when paring GPUs to the CPU
Proposal for a Joint German-British Interferometric Gravitational Wave Detector
For many years there has been steady progress towards the detection of gravitational radiation. It has now become clear that the next major step should be the construction of a number of long-baseline detectors around the world. An array of detectors of this type is expected to allow the observation of gravitational waves from a range of astrophysical sources, leading to improved insight in many areas including stellar collapse, binary coalescence and the expansion of the Universe.
We propose that one of these detectors be built by a collaboration formed around the gravitational wave groups in Britain and Germany. In this document we present our case for this collaborative venture and outline the design philosophy of our proposed instrument - an interferometric detector with arms of length close to 3km.
Two detectors of the same general type are planned for the USA (LIGO project), one is planned for Italy (Italian/French VIRGO project) and another is proposed for Australia (AIGO project). It is expected that all the long baseline detectors to be built will operate as part of a coordinated worldwide network
- …