1 |
[en] SUPPORT FOR CODE PORTABILITY IN HIGH PERFORMANCE COMPUTING APPLICATIONS / [pt] AUXÍLIO A PORTABILIDADE DE CÓDIGO EM APLICAÇÕES DE ALTO DESEMPENHOPAULO ROBERTO PEREIRA DE SOUZA FILHO 16 January 2017 (has links)
[pt] Atualmente na computação de alto desempenho existem diversas opções de arquiteturas de diversos fabricantes, algumas sendo heterogêneas como por exemplo CPU mais GPU. Este trabalho tem como objetivo implementar maneiras de codificar aplicações de alto desempenho contemplando alguns tipos de arquiteturas, incluindo algumas heterogêneas, garantindo a portabilidade em uma grande porção do código mas mantendo o desempenho e a capacidade de fazer otimizações específicas a cada arquitetura. Implementamos a biblioteca HLIB que gerencia as primitivas de arquiteturas heterogêneas do tipo CPU mais GPU, APU e CPU mais Phi e que também funciona em arquiteturas homogêneas tradicionais. Implementamos o OpenVec, uma ferramenta para gerar, de forma portável, código vetorial explícito. Contemplando as principais arquiteturas SIMD dos últimos 17 anos, tais como ARM Neon, Intel SSE até AVX-512 e IBM VSX. Demonstramos o uso combinado dessas duas ferramentas com aplicações de alto desempenho, que demandam mais de um petaflop. / [en] Today s platforms are becoming increasingly heterogeneous. A given platform may have many different computing elements in it: CPUs, coprocessors and GPUs of various kinds. This work propose a way too
keep some portion of code portable without compromising the performance along different heterogeneous platforms. We implemented the HLIB library that handles the preparation code needed by heterogeneous computing, also this library transparently supports the traditional homogeneous platform. To address multiple SIMD architectures we implemented the OpenVec, a tool to help compiler to enable SIMD instructions. This tool provides a set of portable SIMD intrinsics and C plus plus operators to get a portable explicit vectorization, covering SIMD architectures from the last 17 years like ARM Neon, Intel SSE to AVX-512 and IBM Power8 Altivec plus VSX. We demonstrated the combination use of this strategy using both tools with petaflop HPC applications.
|
2 |
[en] SOLVING LARGE SYSTEMS OF LINEAR EQUATIONS ON MULTI-GPU CLUSTERS USING THE CONJUGATE GRADIENT METHOD IN OPENCLTM / [pt] RESOLUÇÃO DE SISTEMAS DE EQUAÇÕES LINEARES DE GRANDE PORTE EM CLUSTERS MULTI-GPU UTILIZANDO O MÉTODO DO GRADIENTE CONJUGADO EM OPENCLTMANDRE LUIS CAVALCANTI BUENO 27 September 2013 (has links)
[pt] Sistemas de equações lineares esparsos e de grande porte aparecem
como resultado da modelagem de vários problemas nas engenharias. Dada
sua importância, muitos trabalhos estudam métodos para a resolução
desses sistemas. Esta dissertação explora o potencial computacional de
múltiplas GPUs, utilizando a tecnologia OpenCL, com a finalidade de
resolver sistemas de equações lineares de grande porte. Na metodologia
proposta, o método do gradiente conjugado é subdivido em kernels que
são resolvidos por múltiplas GPUs. Para tal, se fez necessário compreender
como a arquitetura das GPUs se relaciona com a tecnologia OpenCL a fim
de obter um melhor desempenho. / [en] The process of modeling problems in the engineering fields tends to
produce substantiously large systems of sparse linear equations. Extensive
research has been done to devise methods to solve these systems. This
thesis explores the computational potential of multiple GPUs, through
the use of the OpenCL tecnology, aiming to tackle the solution of large
systems of sparse linear equations. In the proposed methodology, the
conjugate gradient method is subdivided into kernels, which are delegated
to multiple GPUs. In order to achieve an efficient method, it was necessary
to understand how the GPUs’ architecture communicates with OpenCL.
|
3 |
[en] ANNCOM: ARTIFICIAL NEURAL NETWORK LIBRARY FOR HIGH PERFORMANCE COMPUTING USING GRAPHIC CARDS / [pt] ANNCOM: BIBLIOTECA DE REDES NEURAIS ARTIFICIAIS PARA ALTO DESEMPENHO UTILIZANDO PLACAS DE VÍDEODANIEL SALLES CHEVITARESE 24 May 2019 (has links)
[pt] As Redes Neurais Artificiais têm sido utilizadas com bastante sucesso em problemas de previsão, inferência e classificação de padrões. Por essa razão, já se encontram disponíveis diversas bibliotecas que facilitam a modelagem e o treinamento de redes, tais como o NNtool do Matlab ou o WEKA. Embora essas bibliotecas
sejam muito utilizadas, elas possuem limitações quanto à mobilidade, à flexibilidade e ao desempenho. Essa última limitação é devida, principalmente, ao treinamento que pode exigir muito tempo quando existe uma grande quantidade de dados com muitos atributos. O presente trabalho propõe o desenvolvimento de
uma biblioteca (ANNCOM) de fácil utilização, flexível, multiplataforma e que utiliza a arquitetura CUDA (Compute Unified Device Architecture) para reduzir os tempos de treinamento das redes. Essa arquitetura é uma forma de GPGPU (General-Purpose computing on Graphics Processing Units) e tem sido utilizada
como uma solução em computação paralela na área de alto desempenho, uma vez que a tecnologia utilizada nos processadores atuais está chegando ao limite de velocidade. Adicionalmente, foi criada uma ferramenta gráfica que auxilia o desenvolvimento de soluções aplicando as técnicas de redes neurais de forma fácil e clara usando a biblioteca desenvolvida. Para avaliação de desempenho da ANNCOM, foram realizados seis treinamentos para classificação de clientes de baixa tensão de uma distribuidora de energia elétrica. O treinamento das redes, utilizando a ANNCOM com a tecnologia CUDA, alcançou um desempenho quase 30 vezes maior do que a ANNCOM auxiliada pela MKL (Math Kernel Library) da Intel, também utilizada pelo Matlab. / [en] The Artificial Neural Networks have been used quite successfully in problems of prediction, inference and classification standards. For this reason, are already available several libraries that facilitate the modeling and training networks, such as NNtool Matlab or WEKA. While these libraries are widely used, they
have limited mobility, flexibility and performance. This limitation is due mainly to the training that can take a long time when there is a large amount of data with many attributes. This paper proposes the development of a library (ANNCOM) easy to use, flexible platform and architecture that uses the CUDA (Compute Unified Device Architecture) to reduce the training times of the networks. This architecture is a form of GPGPU (GeneralPurpose computing on Graphics Processing Units) and has been used as a solution in parallel computing in the area of high performance, since the technology used in current processors are reaching the limit of speed. Additionally created a graphical tool that helps the development of solutions using the techniques of neural networks easily and clearly using the library developed. For performance evaluation ANNCOM were conducted six trainings for customer classification of a low voltage electricity distribution. The training of networks using ANNCOM with CUDA technology, achieved a performance
nearly 30 times greater than the ANNCOM aided by MKL (Math Kernel Library) by Intel, also used by Matlab.
|
4 |
[en] HETEROGENEOUS PARALLELIZATION OF QUANTUM-INSPIRED LINEAR GENETIC PROGRAMMING / [pt] PARALELIZAÇÃO HETEROGÊNEA DA PROGRAMAÇÃO GENÉTICA LINEAR COM INSPIRAÇÃO QUÂNTICACRISTIAN ENRIQUE MUNOZ VILLALOBOS 27 October 2016 (has links)
[pt] Um dos principais desafios da ciência da computação é conseguir que um
computador execute uma tarefa que precisa ser feita, sem dizer-lhe como fazê-la. A
Programação Genética (PG) aborda este desafio a partir de uma declaração de alto
nível sobre o que é necessário ser feito e cria um programa de computador para
resolver o problema automaticamente. Nesta dissertação, é desenvolvida uma
extensão do modelo de Programação Genética Linear com Inspiração Quântica
(PGLIQ) com melhorias na eficiência e eficácia na busca de soluções. Para tal,
primeiro o algoritmo é estruturado em um sistema de paralelização heterogênea
visando à aceleração por Unidades de Processamento Gráfico e a execução em
múltiplos processadores CPU, maximizando a velocidade dos processos, além de
utilizar técnicas otimizadas para reduzir os tempos de transferências de dados.
Segundo, utilizam-se as técnicas de Visualização Gráfica que interpretam a
estrutura e os processos que o algoritmo evolui para entender o efeito da
paralelização do modelo e o comportamento da PGLIQ. Na implementação da
paralelização heterogênea, são utilizados os recursos de computação paralela como
Message Passing Interface (MPI) e Open Multi-Processing (OpenMP), que são de
vital importância quando se trabalha com multi-processos. Além de representar
graficamente os parametros da PGLIQ, visualizando-se o comportamento ao longo
das gerações, uma visualização 3D para casos de robôtica evolutiva é apresentada,
na qual as ferramentas de simulação dinâmica como Bullet SDK e o motor gráfico
OGRE para a renderização são utilizadas. / [en] One of the main challenges of computer science is to get a computer execute
a task that must be done, without telling it how to do it. Genetic Programming (GP)
deals with this challenge from a high level statement of what is needed to be done
and creates a computer program to solve the problem automatically. In this
dissertation we developed an extension of Quantum-Inspired Linear Genetic
Programming Model (QILGP), aiming to improve its efficiency and effectiveness
in the search for solutions. For this, first the algorithm is structured in a
Heterogeneous Parallelism System, Aiming to accelerated using Graphics
Processing Units GPU and multiple CPU processors, reducing the timing of data
transfers while maximizing the speed of the processes. Second, using the techniques
of Graphic Visualization which interpret the structure and the processes that the
algorithm evolves, understanding the behavior of QILGP. We used the highperformance
features such as Message Passing Interface (MPI) and Open Multi-
Processing (OpenMP), which are of vital importance when working with multiprocesses,
as it is necessary to design a topology that has multiple levels of
parallelism to avoid delaying the process for transferring the data to a local
computer where the visualization is projected. In addition to graphically represent
the parameters of PGLIQ devising the behavior over generations, a 3D visualization
for cases of evolutionary robotics is presented, in which the tools of dynamic
simulation as Bullet SDK and graphics engine OGRE for rendering are used . This
visualization is used as a tool for a case study in this dissertation.
|
5 |
[en] TOWARD GPU-BASED GROUND STRUCTURES FOR LARGE SCALE TOPOLOGY OPTIMIZATION / [pt] OTIMIZAÇÃO TOPOLÓGICA DE ESTRUTURAS DE GRANDE PORTE UTILIZANDO O MÉTODO DE GROUND STRUCTURES EM GPUARTURO ELI CUBAS RODRIGUEZ 14 May 2019 (has links)
[pt] A otimização topológica tem como objetivo encontrar a distribuição mais eficiente de material em um domínio especificado sem violar as restrições de projeto definidas pelo usuário. Quando aplicada a estruturas contínuas, a otimização topológica é geralmente realizada por meio de métodos de densidade, conhecidos na literatura técnica. Neste trabalho, daremos ênfase à aplicação de sua formulação discreta, na qual um determinado domínio é discretizado na forma de uma estrutura base, ou seja, uma distribuição espacial finita de nós conectados entre si por meio de barras de treliça. O método de estrutura base fornece uma aproximação para as estruturas de Michell, que são compostas por um número infinito de barras, por meio de um número reduzido de elementos de treliça. O problema de determinar a estrutura final com peso mínimo, para um único caso de carregamento, considerando um comportamento linear elástico do material e restrições de tensão, pode ser formulado como um problema de programação linear. O objetivo deste trabalho é fornecer uma implementação escalável para o problema de otimização de treliças com peso mínimo, considerando domínios com geometrias arbitrárias. O método remove os elementos que são desnecessários, partindo de uma treliça cujo grau de conectividade é definido pelo usuário, mantendo-se fixos os pontos nodais. Propomos uma implementação escalável do método de estrutura base, utilizando um algoritmo de pontos interiores eficiente e robusto, em um ambiente de computação paralela (envolvendo unidades de processamento gráfico ou GPUs). Os resultados apresentados, em estruturas bi e tridimensionais com milhões de barras, ilustram a viabilidade e a eficiência computacional da implementação proposta. / [en] Topology optimization aims to find the most efficient material distribution in a specified domain without violating user-defined design constraints. When applied to continuum structures, topology optimization is usually performed by means of the well-known density methods. In this work we focus on the application of its discrete formulation where a given domain is discretized into a ground structure, i.e., a finite spatial distribution of nodes connected using truss members. The ground structure method provides an approximation to optimal Michell-type structures, composed of an infinite number of members, by using a reduced number of truss members. The optimal least weight truss for a single load case, under linear elastic conditions, subjected to stress constraints can be posed as a linear programming problem. The aim of this work is to provide a scalable implementation for the optimization of least weight trusses embedded in any domain geometry. The method removes unnecessary members from a truss that has a user-defined degree of connectivity while keeping the nodal locations fixed. We discuss in detail the scalable implementation of the ground structure method using an efficient and robust interior point algorithm within a parallel computing environment (involving Graphics Processing Units or GPUs). The capabilities of the proposed implementation is illustrated by means of large scale applications on practical problems with millions of members in both 2D and 3D structures.
|
6 |
[en] ADAPTIVE RELAXED SYNCHRONIZATION THROUGH THE USE OF SUPERVISED LEARNING METHODS / [pt] RELAXAMENTO ADAPTATIVO DA SINCRONIZAÇÃO ATRAVÉS DO USO DE MÉTODOS DE APRENDIZAGEM SUPERVISIONADAANDRE LUIS CAVALCANTI BUENO 31 July 2018 (has links)
[pt] Sistemas de computação paralelos vêm se tornando pervasivos, sendo usados para interagir com o mundo físico e processar uma grande quantidade de dados de várias fontes. É essencial, portanto, a melhora contínua do desempenho computacional para acompanhar o ritmo crescente da quantidade de informações que precisam ser processadas. Algumas dessas aplicações admitem uma menor qualidade no resultado final em troca do aumento do desempenho de execução. Este trabalho tem por objetivo avaliar a viabilidade de usar métodos de aprendizagem supervisionada para garantir que a técnica de Sincronização Relaxada, utilizada para o aumento do desempenho de execução, forneça resultados dentro de limites aceitáveis de erro. Para isso, criamos uma metodologia que utiliza alguns dados de entrada para montar casos de testes que, ao serem executados, irão fornecer valores representativos de entrada para o treinamento de métodos de aprendizagem supervisionada. Dessa forma, quando o usuário utilizar a sua aplicação (no mesmo ambiente de treinamento) com uma nova entrada, o algoritmo de classificação treinado irá sugerir o fator de relaxamento de sincronização mais adequado à tripla aplicação/entrada/ambiente de execução. Utilizamos essa metodologia em algumas aplicações paralelas bem conhecidas e mostramos que, aliando a Sincronização Relaxada a métodos de aprendizagem supervisionada, foi possível manter a taxa de erro máximo acordada. Além disso, avaliamos o ganho de desempenho obtido com essa técnica para alguns cenários em cada aplicação. / [en] Parallel computing systems have become pervasive, being used to interact with the physical world and process a large amount of data from various sources. It is essential, therefore, the continuous improvement of computational performance to keep up with the increasing rate of the amount of information that needs to be processed. Some of these applications admit lower quality in the final result in exchange for increased execution performance. This work aims to evaluate the feasibility of using supervised learning methods to ensure that the Relaxed Synchronization technique, used to increase execution performance, provides results within acceptable limits of error. To do so, we have created a methodology that uses some input data to assemble test cases that, when executed, will provide input values for the training of supervised learning methods. This way, when the user uses his/her application (in the same training environment) with a new input, the trained classification algorithm will suggest the relax synchronization factor that is best suited to the triple application/input/execution environment. We used this methodology insome well-known parallel applications and showed that, by combining Relaxed Synchronization with supervised learning methods, it was possible to maintain the maximum established error rate. In addition, we evaluated the performance gain obtained with this technique for a number of scenarios in each application.
|
Page generated in 0.0292 seconds