• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 1
  • Tagged with
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Um processo de gera??o autom?tica de c?digo paralelo para arquiteturas h?bridas com afinidade de mem?ria / An automatic parallel code generation process for hybrid architectures using memory affinity

Raeder, Mateus 27 August 2014 (has links)
Submitted by Caroline Xavier (caroline.xavier@pucrs.br) on 2017-06-29T13:36:54Z No. of bitstreams: 1 TES_MATEUS_RAEDER_COMPLETO.pdf: 6448267 bytes, checksum: af90fc3a763acd6de5c2203df411193f (MD5) / Made available in DSpace on 2017-06-29T13:36:54Z (GMT). No. of bitstreams: 1 TES_MATEUS_RAEDER_COMPLETO.pdf: 6448267 bytes, checksum: af90fc3a763acd6de5c2203df411193f (MD5) Previous issue date: 2014-08-27 / Over the last years, technological advances provide machines with different levels of parallelism, producing a great impact in high-performance computing area. These advances allowed developers to improve further the performance of large scale applications. In this context, clusters of multiprocessor machines with Non-Uniform Memory Access (NUMA) are a trend in parallel processing. In NUMA architectures, the access time to data depends on where it is placed in memory. For this reason, managing data location is essential in this type of machine. In this scenario, developing software for a cluster of NUMA machines must explore the internode part (multicomputer, with distributed memory) and the intranode part (multiprocessor, with shared memory) of this architecture. This type of hybrid programming takes advantage of all features provided by NUMA architectures. However, rewriting a sequential application so that it exploits the parallelism of the environment correctly is not a trivial task, but can be facilitated through an automated process. In this sense, our work presents an automatic parallel code generation process for hybrid architectures. With the proposed approach, users do not need to know low level routines of parallel programming libraries. In order to do so, we developed a graphical tool, in which users can dynamically and intuitively create their parallel models. Thereby, it is possible to create parallel programs in such a way that is not required to be familiar with libraries commonly used by professionals of high performance computing area (such as MPI, for example). By using the developed tool, user draws a directed graph to indicate the number of processes (nodes of the graph) and the communication between them (edges). From this drawing, user inserts the sequential code of each process defined in the graphical interface, and the tool automatically generates the corresponding parallel code. Moreover, weight process and memory mappings were defined and tested on a NUMA machine cluster, as well as a hybrid mapping. The tool was developed in Java and generates parallel code with MPI for C++, in the same way that it applies memory affinity policies for NUMA machines through the Memory Affinity Interface (MAI) library. Some applications were developed with and without our model. The obtained results evidence that the proposed mapping is valid, providing performance gains in relation to sequential versions and behaving in a very similar way to traditional parallel implementations. / Nos ?ltimos anos, avan?os tecnol?gicos t?m disponibilizado m?quinas com diferentes n?veis de paralelismo, produzindo um grande impacto na ?rea de processamento de alto desempenho. Estes avan?os permitiram aos desenvolvedores melhorar ainda mais o desempenho de aplica??es de grande porte. Neste contexto, a cria??o de clusters de m?quinas multiprocessadas com acesso n?o uniforme ? mem?ria (NUMA - Non-Uniform Memory Access), surge como uma tend?ncia. Em uma arquitetura NUMA, o tempo de acesso a um dado depende de sua localiza??o na mem?ria. Por este motivo, gerenciar a localiza??o dos dados ? essencial em m?quinas deste tipo. Neste cen?rio, o desenvolvimento de software para um cluster de m?quinas NUMA deve explorar tanto a parte internodo (multicomputador, com mem?ria distribu?da) quanto a parte intranodo (multiprocessador, mem?ria compartilhada) desta arquitetura. Este tipo de programa??o h?brida faz melhor uso dos recursos disponibilizados por arquiteturas NUMA. Entretanto, reescrever uma aplica??o sequencial de modo que explore o paralelismo do ambiente de forma correta n?o ? uma tarefa trivial, mas que pode ser facilitada atrav?s de um processo automatizado. Neste sentido, o presente trabalho apresenta um processo de gera??o autom?tica e transparente de aplica??es paralelas h?bridas, sem que o usu?rio precise conhecer as rotinas de baixo n?vel das bibliotecas de programa??o paralela. Foi desenvolvida ent?o, uma ferramenta gr?fica para que o usu?rio crie seu modelo paralelo de forma din?mica e intuitiva. Assim, ? poss?vel criar programas paralelos de tal forma que n?o ? necess?rio ser familiarizado com bibliotecas comumente utilizadas por profissionais da ?rea de alto desempenho (como o MPI, por exemplo). Atrav?s da ferramenta desenvolvida, o usu?rio desenha um grafo dirigido para indicar a quantidade de processos (nodos do grafo) e as formas de comunica??o entre eles (arestas). A partir desse desenho, o usu?rio insere o c?digo sequencial de cada processo definido na interface gr?fica, e a ferramenta gera o c?digo paralelo correspondente. Al?m disto, mapeamentos de processos pesados e de mem?ria foram definidos e testados em um cluster de m?quinas NUMA, bem como um mapeamento h?brido. A ferramenta foi desenvolvida em Java e gera c?digo paralelo com MPI em C++, al?m de aplicar pol?ticas de afinidade de mem?ria para m?quinas NUMA atrav?s da biblioteca MAI (Memory Affinity Interface). Algumas aplica??es foram desenvolvidas com e sem a utiliza??o do modelo. Os resultados demonstram que o mapeamento proposto ? v?lido, j? que houve ganho de desempenho em rela??o ?s vers?es sequenciais, al?m de um comportamento similar a implementa??es paralelas tradicionais.

Page generated in 0.053 seconds