• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 397
  • 103
  • 14
  • 3
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 521
  • 414
  • 273
  • 151
  • 128
  • 89
  • 86
  • 81
  • 65
  • 62
  • 57
  • 55
  • 43
  • 43
  • 40
  • 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.
241

Avaliação de métodos de paralelização automática. / Evaluation of automatic parallelization methods.

Edson Pedro Ferlin 24 March 1997 (has links)
Este trabalho aborda alguns conceitos e definições de processamento paralelo, que são aplicados a paralelização automática, e também às análises e condições para as dependências dos dados, de modo a aplicarmos os métodos de paralelização: Hiperplano, Transformação Unimodular, Alocação de Dados Sem Comunicação e Particionamento & Rotulação. Desta forma, transformamos um programa seqüencial em seu equivalente paralelo. Utilizando-os em um sistema de memória distribuída com comunicação através da passagem de mensagem MPI (Message-Passing Interface), e obtemos algumas métricas para efetuarmos as avaliações/comparações entre os métodos. / This work invoke some concepts and definitions about parallel processing, applicable in the automatic parallelization, and also the analysis and conditions for the data dependence, in order to apply the methods for parallelization: Hyperplane, Unimodular Transformation, Communication-Free Data Allocation and Partitioning & Labeling. On this way, transform a sequential program into an equivalent parallel one. Applying these programs on the distributed-memory system with communication through message-passing MPI (Message-Passing Interface), and we obtain some measurements for the evaluations/comparison between those methods.
242

Paralelização de um programa para cálculo de propriedades físicas de impurezas magnéticas em metais. / Parallelization of a program that calculates physical properties of magnetic impurities in metals.

Eloiza Helena Sonoda 10 August 2001 (has links)
Este trabalho se dedica à paralelização de um programa para cálculos de propriedades físicas de ligas magnéticas diluídas. O método do grupo de renormalização aplicado ao modelo de Anderson de duas impurezas se mostrou particularmente adequado ao processamento paralelo visto que grande parte dos cálculos pode ser executada simultaneamente, assim como variações nos conjuntos de dados requeridas pelo método. Para tal reescrevemos o programa seqüencial usado anteriormente pelo Grupo de Física Teórica do IFSC e implementamos três versões paralelas. Essas versões diferem entre si em relação à abordagem dada à paralelização. O uso de clusters de computadores se revelou uma opção conveniente pois verificamos que o limitante no desempenho é o tempo tomado pelos cálculos e não pela comunicação. Os resultados mostram uma grande redução no tempo total de execução, porém deficiências no speedup e escalabilidade devido a problemas de balanceamento de carga. Analisamos esses problemas e sugerimos alternativas para solucioná-los. / This dissertation discuss the parallelization of a program that calculates physical properties of dilute magnetic alloys. The renormalization group method applied to Anderson's two impurities model showed to be specially suitable to parallel processing because a large amount of calculations as well as variations of data entries required by the method can be performed simultaneously. To achieve this we rewrote the sequential program previously used by the Theoretical Physics Group of the IFSC and wrote three parallel versions. These versions differ from each other by the parallelization approach. The use of computer clusters revealed to be an appropriate option because the calculation time is the limiting factor on performance instead of communication time. The results show a good reduction of execution time, but speedup and scalability lack due to load balancing problems. We analyze these problems and suggest possible solutions.
243

Projeto de um robô bípede para a reprodução da marcha humana. / Design of a biped robot to reproduce the human gait.

Rogerio Eduardo Silva Santana 21 November 2005 (has links)
A análise da marcha humana é um dos principais recursos que podem ser utilizados no estudo e tratamento de patologias que envolvem o aparelho locomotor. O presente trabalho visa o projeto e a construção de um robô bípede antropomórfico para ser, juntamente com um laboratório de marcha, uma ferramenta de auxílio aos profissionais da saúde na análise da marcha humana. O robô construído é capaz de reproduzir, de uma forma assistida, padrões de marcha reais, cujos dados são previamente adquiridos por um laboratório de marcha. As características dimensionais e cinemáticas desse robô são semelhantes às de um corpo humano. Dessa forma, a escolha das dimensões dos membros do robô e das faixas de movimentação de suas articulações foi baseada em dados provenientes de corpos humanos. Além disso, para garantir uma semelhança ainda maior com o corpo humano, um mecanismo paralelo foi selecionado para ser o responsável pelos movimentos das articulações do tornozelo e do quadril. Um sistema de sensoriamento barato, baseado em sensores de inclinação e de contato, foi desenvolvido para avaliar a reprodução da marcha humana por parte do robô. Agora, para acionar o robô, servo motores controlados por sinais PWM foram utilizados. Esse trabalho também apresenta o desenvolvimento de um modelo dinâmico tridimensional do robô que considera a sua interação com o solo. / The analysis of the human gait is one of the main resources that can be used in studies and treatment of pathologies which involve the locomotor system. The goal of this research is to design and to build an anthropomorphic biped robot to be used as a tool that could help health professionals to study the human gait. Once built, the robot can reproduce in an assisted way, real gait patterns based on datas that were previously acquired by a gait laboratory. The dimensionals and kinematics traits of this robot are alike to the human body. Therefore the choice of the limb dimensions from the robot and the bustle ranges of its articulations were based on datas originated in human bodies. Beyond this and to guarantee a great similarity to the human body a parallel mechanism was selected to be the responsible for the articulations movements of the ankle and hip. A cheap sensor system based on tilt and contact sensors was developed to evaluate the reproduction of the human gait by the robot. To operate the robot servo-motors controlled by PWM signals were used. This study also presents the development of a three-dimensional dynamic model of the robot that considers its interaction with the ground.
244

Cálculo explícito dos torques dos atuadores de um robô paralelo plano empregando o método de Kane. / Explicit determination of the driving torques of a planar parallel robot by using Kane\'s method.

Gilson Finotti 28 April 2008 (has links)
Há mais de uma década os robôs paralelos têm atraído a atenção das comunidades acadêmica e industrial devido às suas vantagens potenciais sobre as arquiteturas predominantes - as seriais. Dentre estas vantagens, pode-se citar a leveza, as elevadas velocidades e acelerações e a capacidade de carga. A aplicação industrial mais promissora para estas arquiteturas alternativas de robôs são as operações \"pega-e-põe\", necessárias nas indústrias alimentícia, farmacêutica e de componentes eletrônicos. Neste trabalho apresenta-se um robô paralelo, concebido com a finalidade de realizar operações \"pega-e-põe\" no espaço bidimensional (plano). O objetivo principal é a análise dinâmica deste mecanismo, empregando o método de Kane, para a determinação dos torques dos atuadores e das forças de reação, causados pelo efeito dinâmico de sua movimentação, quando a garra esteja sujeita a esforços externos e realizando uma trajetória retilínea ou circular em movimento uniforme ou uniformemente variado. Para tanto, desenvolveu-se nesta dissertação a análise cinemática do robô, um estudo de possíveis trajetórias para a garra, o levantamento do espaço de trabalho, bem como a análise dinâmica correspondente. Incluiu-se também diversas simulações para caracterizar melhor suas propriedades. / For over a decade parallel robots have attracted the interest from academic and industrial communities due to their potential advantages over the predominant serial architecture. Among these advantages are the lighter weight and higher speeds, accelerations, and load capacity. The most promising industrial application for these alternative architectures are the pick-and-place operations, which are needed in food, pharmaceutical and electronics industries. We show here a parallel robot designed to perform pick-and-place operations in two dimensions , i.e., on a plane. The main goal is the dynamical analysis of this mechanism by means of the Kane method. We determine the torques of the actuators and the reaction forces caused by the dynamical effects of its movement, when its end-effector is subject to external load. The cases of uniform and accelerated movements, with either straight or circular trajectory, are considered. Therefore, in this dissertation we present the kinematics analysis of the robot, an analysis of possible end-effector trajectories, the workspace development, and the corresponding dynamical analysis. A few simulations are also included to better describe its properties.
245

MPI2.NET : criação dinâmica de tarefas com orientação a objetos / MPI2.NET: dynamic tasks creation with object orientation

Afonso, Fernando Abrahão January 2010 (has links)
Message Passing Interface (MPI) é o padrão de facto para o desenvolvimento de aplicações paralelas e de alto desempenho que executem em clusters. O padrão define APIs para as linguagens de programação Fortran, C e C++. Por outro lado a programação orientada a objetos é o paradigma de programação dominante atualmente, onde linguagens de programação como Java e C# têm se tornado muito populares. Isso se deve às abstrações voltadas para facilitar a programação oriundas dessas linguagens de programação, permitindo um ciclo de programação/manutenção mais eficiente. Devido a isso, diversas bibliotecas MPI para essas linguagens emergiram. Dentre elas, pode-se destacar a biblioteca MPI.NET, para a linguagem de programação C#, que possui a melhor relação entre abstração e desempenho. Na computação paralela, o modelo utilizado para o desenvolvimento das aplicações é muito importante, sendo que o modelo Divisão & Conquista é escalável, aplicável a diversos problemas e permite a execução eficiente de aplicações cuja carga de trabalho é desconhecida ou irregular. Para programar utilizando esse modelo é necessário que o ambiente de execução suporte dinamismo, o que não é suportado pela biblioteca MPI.NET. Desse cenário emerge a principal motivação desse trabalho, cujo objetivo é explorar a criação dinâmica de tarefas na biblioteca MPI.NET. Ao final, foi possível obter uma biblioteca com desempenho competitivo em relação ao desempenho das bibliotecas MPI para C++. / Message Passing Interface (MPI) is the de facto standard for the development of high performance applications executing on clusters. The standard defines APIs for the programming languages Fortran C and C++. On the other hand, object oriented programming has become the dominant programming paradigm, where programming languages as Java and C# are becoming very popular. This can be justified by the abstractions contained in these programming languages, allowing a more efficient programming/maintenance cycle. Because of this, several MPI libraries emerged for these programming languages. Among them, we can highlight the MPI.NET library for the C# programming language, which has the best relation between abstraction and performance. In parallel computing, the model used for the development of applications is very important, and the Divide and Conquer model is efficiently scalable, applicable to several problems and allows efficient execution of applications whose workload is unknown or irregular. To program using this model, the execution environment must provide dynamism, which is not provided by the MPI.NET library. From this scenario emerges the main goal of this work, which is to explore dynamic tasks creation on the MPI.NET library. In the end we where able to obtain a library with competitive performance against MPI C++ libraries.
246

Modelos analíticos para interconexão de processadores : avaliação de desempenho de alocação simultânea de recursos / Analytic models for processors interconnections: performance evaluation of simultaneous resource allocation / Modèles analytiques pour les interconnexions de processeurs: evaluation des performances d'allocation simultanée de ressources

Fernandes, Paulo Henrique Lemelle January 1990 (has links)
On décrit l'application de deux méthodes analytiques à un même problème avec l'utilisation simultanée de ressources, l'évaluation des performances des interconnexions de processeurs du type multistage. On applique d'abord la méthode traditionnelle utilisant les réseaux de files d'attente et les chaînes de Markov. Aprés, on utilise une méthode avec modélisation basée sur les réseaux de Petri et l'extraction à travers des pondérations des résultats déterministes. Les modèles développés par chacun des méthodes sont comparés selon trois aspects distincts: facilité de modélisation, vitesse d'évaluation et précision des résultats. La première méthode employée, la méthode analytique traditionnelle, utilise les réseaux de files d'attente (théorie des réseaux) pour faire la modélisation et l'algorithme de convolution (constante de normalisation) pour faire l'extraction des résultats. La resolution est faire à travers l'approche stochastique traditionnelle avec les formules derivées des chaînes de Markov. La méthode d'évaluation apliquée après est basée sur les dévelopment des modèles en réseaux des Petri temporisées. Cette méthode est composée de deux parties: l'application d'une méthode analytique pure (modéle Q) et l'application des méthode approximatives. Ces méthodes approximatives font la décomposition d'un problème avec comportement variable en plusiers problèmes avec comportement déterministes et probabilitées associées. Les modèles des interconnexions multistage ont été développées avec plusiers degrés de rafinement dans tout les deux méthodes dejà citées. Les modèles de base avec des imprecisions ont été rafinés jusqu'à avoir une description la plus proche possible de la realité (les interconnexions multistage). La comparaison de tout les modèles développés est faite en trois parties pour établir les modèles les plus adequés à l'évaluation des performances des interconnexions multistage. L'adequation doit envisager la facilité de dévelopement du modèle, la vitesse et la précision des résultats. Ces informations sont prises selon la taille du problème (dimension de l'interconnexion), l'enfoque de modélisation (les paramètres à considerer) et les objectify qualitatifs de l'evaluation (ce qu'on veux savoir). / Descreve-se a aplicação de dois métodos analíticos para um mesmo problema com alocação simultânea de recursos: a avaliação de desempenho de interconexões de processadores do tipo multi-estágios. Aplica-se o método analítico tradicional com redes de filas de espera e cadeias de Markov. utiliza - se apos um método com modelagem através de redes de Petri temporizadas e extração através de ponderação de resultados determinísticos. Os modelos desenvolvidos por cada um dos métodos são comparados segundo três diferentes aspectos: facilidade de modelagem, velocidade de extração e acuracidade de resultados. O primeiro método de avaliação empregado, método analítico tradicional, consiste no use de redes de filas de espera (teoria de filas) para a modelagem e do algoritmo de convolução (cálculo da constante de normalização) para a extração de resultados. A abordagem de resolução é clássica (abordagem estocástica) resultando nas formulas derivadas do modelo de cadeias de Markov. O método de avaliação aplicado em seguida esta baseado no desenvolvimento de modelos em redes de Petri temporizadas. Este método se divide na aplicação de um método analítico puro (modelo Q) e na aplicação de métodos aproximativos. Estes métodos aproximativos consistem na decomposição de um problema com comportamento variável em diversos problemas com comportamento determinístico e probabilidades associadas. Os modelos para as interconexões multi-estágios em ambos os métodos já citados são desenvolvidos com diferentes graus de refinamento. Modelos básicos com imprecisões de descrição são refinados ate ser estabelecido um modelo tão próximo quanto possível da realidade descrita (interconexão multiestágios). A comparação de todos os modelos desenvolvidos é feita em três etapas visando estabelecer quais modelos são adequados a avaliação de desempenho de interconexões multi-estágios. A adequação deve considerar aspectos como facilidade de desenvolvimento do modelo, rapidez e precisão na obtenção de resultados. Estas informações são consideradas segundo o tamanho do problema (dimensão da interconexão), o enfoque de modelagem (parâmetros relevantes) e os objetivos qualitativos da avaliacão (o que se pretende descobrir). / This work describes the application of two analytic models to the multistage processor interconnections, a simultaneous resource allocation problem. First, the traditional method based on queueing networks and Markov chains is applied. After, a Petri nets based method with deterministic weigthed results is used. The models developed in each method are compared in three levels: modeling facility, evaluation speed and precision. The first evaluation method used is based on the queueing network classic method (queueing theory) to model and the convolution algorithm (normalization constant calculus) to obtain results. The classic stochastic approach is used through formules derived from Markov chains. The second method used is based on temporised Petri nets models. This method has two parts: the application of a pure analitical method (model Q) and the application of approximatives methods. This approximatives methods decompose a problem with non-fixed behaviour in several weighted problems with deterministic behaviour. The multistage interconnections models are developped with different degrees of accuracy for both methods cited. Basic models without description precision are refined until as accurate as possible model is obtained for the choosen reality (multistage interconnections). The comparison of all developped models is made in three steps aiming the qualitative judgment of the models for multistages performance evaluation. This judgment should consider the dificulty to develop the model, the speed and the precision of the results. These informations are considered taking into account the the problem size (number of elements in the interconnection), the modelling approach (relevant parameters) and the the qualitative evaluation goals (the evaluation purpose).
247

Análise do comportamento não cooperativo em computação voluntária / Analyses of non-cooperative behavior in volunteer computing environments

Donassolo, Bruno Luis de Moura January 2011 (has links)
Os avanços nas tecnologias de rede e nos componentes computacionais possibilitaram a criação dos sistemas de Computação Voluntária (CV) que permitem que voluntários doem seus ciclos de CPU ociosos da máquina para um determinado projeto. O BOINC é a infra-estrutura mais popular atualmente, composta de mais 5.900.000 máquinas que processam mais de 4.003 TeraFLOP por dia. Os projetos do BOINC normalmente possuem centenas de milhares de tarefas independentes e estão interessados no throughput. Cada projeto tem seu próprio servidor que é responsável por distribuir unidades de trabalho para os clientes, recuperando os resultados e validando-os. Os algoritmos de escalonamento do BOINC são complexos e têm sido usados por muitos anos. Sua eficiência e justiça foram comprovadas no contexto dos projetos orientados ao throughput. Ainda, recentemente, surgiram projetos em rajadas, com menos tarefas e interessados no tempo de resposta. Diversos trabalhos propuseram novos algoritmos de escalonamento para otimizar seu tempo de resposta individual. Entretanto, seu uso pode ser problemático na presença de outros projetos. Neste texto, são estudadas as consequências do comportamento não cooperativo nos ambientes de Computação Voluntária. Para realizar o estudo, foi necessário modificar o simulador SimGrid para melhorar seu desempenho na simulação dos sistemas de CV. A primeira contribuição do trabalho é um conjunto de melhorias no núcleo de simulação do SimGrid para remover os gargalos de desempenho. O resultado é um simulador consideravelmente mais rápido que as versões anteriores e capaz de rodar experimentos nessa área. Ainda, como segunda grande contribuição, apresentou-se como os algoritmos de escalonamento atuais do BOINC são incapazes de garantir a justiça e isolação entre os projetos. Os projetos em rajadas podem impactar drasticamente o desempenho de todos os outros projetos (rajadas ou não). Para estudar tais interações, realizou-se um detalhado, multi jogador e multi objetivo, estudo baseado em teoria dos jogos. Os experimentos e análise realizados proporcionaram um bom entendimento do impacto dos diferentes parâmetros de escalonamento e mostraram que a otimização não cooperativa pode resultar em ineficiências e num compartilhamento injusto dos recursos. / Advances in inter-networking technology and computing components have enabled Volunteer Computing (VC) systems that allows volunteers to donate their computers’ idle CPU cycles to a given project. BOINC is the most popular VC infrastructure today with over 5.900.000 hosts that deliver over 4.003 TeraFLOP per day. BOINC projects usually have hundreds of thousands of independent tasks and are interested in overall throughput. Each project has its own server which is responsible for distributing work units to clients, recovering results and validating them. The BOINC scheduling algorithms are complex and have been used for many years now. Their efficiency and fairness have been assessed in the context of throughput oriented projects. Yet, recently, burst projects, with fewer tasks and interested in response time, have emerged. Many works have proposed new scheduling algorithms to optimize individual response time but their use may be problematic in presence of other projects. In this text, we study the consequences of non-cooperative behavior in volunteer computing environment. In order to perform our study, we needed to modify the SimGrid simulator to improve its performance simulating VC systems. So, the first contribution is a set of improvements in SimGrid’s core simulation to remove its performance bottlenecks. The result is a simulator considerably faster than the previous versions and able to run VC experiments. Also, in the second contribution, we show that the commonly used BOINC scheduling algorithms are unable to enforce fairness and project isolation. Burst projects may dramatically impact the performance of all other projects (burst or non-burst). To study such interactions, we perform a detailed, multi-player and multi-objective game theoretic study. Our analysis and experiments provide a good understanding on the impact of the different scheduling parameters and show that the non-cooperative optimization may result in inefficient and unfair share of the resources.
248

RST: Reuse through Speculation on Traces / RST: Reuso Especulativo de Traces

Pilla, Mauricio Lima January 2004 (has links)
Na presente tese, apresentamos uma nova abordagem para combinar reuso e prvisão de seqüências dinâmicas de instruções, chamada Reuso por Especulação em traces (RST). Esta técnica permite a identificação dinâmica de traces de instruções redundantes ou previsíveis e o reuso (especulativo ou não) desses traces. RST procura resolver a questão de traces que não são reusados por seus valores de entradas de Traces (DTM). Em estudo anteriores, esses traces foram contabilizados como sendo cerca de 69% de todos os traces reusáveis. Uma das maiores vantagens de RST sobre a combinação de um mecanismo de previsão com uma técnica de reuso de valores em que mecanismos não são relacionados é que RST não necessita de tabelas adicionais para o armazenamento dos valores a serem previstos. A aplciação de reuso e previsão de valores pela simples combinação de mecanismos pode necessitar de uma quantidade proibitiva de espaço de armazenamento. No mecanismo RST, os valores já estão presentes na Tabela de Memorização de Traces, não incorrendo em custos adicionais para lê-los se comparado com uma técnica não-especulativa de reuso de traces. O contexto de entrada de cada trace (os valores de entrada de todas as instruções contidas no trace) já armazenam os valores para o teste de reuso, os quais podem ser também utilizados para previsão de valores para o teste de reuso, os quais podem ser também utilizados para previsão de valores. As principais contribuições de nosso trabalho incluem: (i) um framework de reuso especulativo de traces que pode ser modificado para diferentes arquiteturas de processadores; (ii) definição das modificações necessárias em um processador superescalar e superpipeline para implementar nosso mecanismo; (iii) estudo de questões de implementação relacionadas à essa arquitetura; (iv) estudo dos limites de desempenho da nossa técnica; (v) estudo de uma implementação RST limitada por fatores realísticos; e (vi) ferramentas de simulação que podem ser utilizadas em outros estudos, representando um processador superescalar e superpipeline em detalhes. Salientamos que, em uma arquitetura utilizando mecanismos realistas de estimativa de confiança das previsões, nossa técnica RST consegue atingir speedups médios (médias harmônicas) de 1.29 sobre uma arquitetura sem reuso e 1.09 sobre uma técnica não-especulativa de reuso de traces (DTM). / In this thesis, we present a novel approach to combine both reuse and prediction of dynamic sequences of instructions called Reuse through Speculation on Traces (RST). Our technique allows the dynamic identification of instruction traces that are redundant or predictable, and the reuse (speculative or not) of these traces. RST addresses the issue, present on Dynamic Trace Memoization (DTM), of traces not being reused because some of their inputs are not ready for the reuse test. These traces were measured to be 69% of all reusable traces in previous studies. One of the main advantages of RST over just combining a value prediction technique with an unrelated reuse technique is that RST does not require extra tables to store the values to be predicted. Applying reuse and value prediction in unrelated mechanisms but at the same time may require a prohibitive amount of storage in tables. In RST, the values are already stored in the Trace Memoization Table, and there is no extra cost in reading them if compared with a non-speculative trace reuse technique. . The input context of each trace (the input values of all instructions in the trace) already stores the values for the reuse test, which may also be used for prediction. Our main contributions include: (i) a speculative trace reuse framework that can be adapted to different processor architectures; (ii) specification of the modifications in a superscalar, superpipelined processor in order to implement our mechanism; (iii) study of implementation issues related to this architecture; (iv) study of the performance limits of our technique; (v) a performance study of a realistic, constrained implementation of RST; and (vi) simulation tools that can be used in other studies which represent a superscalar, superpipelined processor in detail. In a constrained architecture with realistic confidence, our RST technique is able to achieve average speedups (harmonic means) of 1.29 over the baseline architecture without reuse and 1.09 over a non-speculative trace reuse technique (DTM).
249

Escalonamento Work-Stealing de programas Divisão-e-Conquista com MPI-2 / Scheduling Divide-and-Conquer programs by Work-Stealing with MPI-2

Pezzi, Guilherme Peretti January 2006 (has links)
Com o objetivo de ser portável e eficiente em arquiteturas HPC atuais, a execução de um programa paralelo deve ser adaptável. Este trabalho mostra como isso pode ser atingido utilizando MPI, através de criação dinâmica de processos, integrada com programação Divisão-e-Conquista e uma estratégia Work-Stealing para balancear os processos MPI, em ambientes heterogêneos e/ou dinâmicos, em tempo de execução. Este trabalho explica como implementar uma aplicação segundo o modelo de Divisão-e-Conquista com MPI, bem como a implementação de uma estratégia Work-Stealing. São apresentados resultados experimentais baseados em uma aplicação sintética, o problema das N-Rainhas (N-Queens). Valida-se tanto a adaptabilidade e a eficiência do código. Os resultados mostram que é possível utilizar um padrão amplamente difundido como o MPI, mesmo em plataformas de HPC não tão homogêneas como um cluster. / In order to be portable and efficient on modern HPC architectures, the execution of a parallel program must be adaptable. This work shows how to achieve this in MPI, by the dynamic creation of processes, coupled with Divide-and-Conquer programming and a Work-Stealing strategy to balance the MPI processes, in a heterogeneous and/or dynamic environment, at runtime. The application of Divide and Conquer with MPI is explained, as well as the implementation of a Work-Stealing strategy. Experimental results are provided, based on a synthetic application, the N-Queens computation. Both the adaptability of the code and its efficiency are validated. The results show that it is possible to use widely spread standards such as MPI, even in parallel HPC platforms that are not as homogeneous as a Cluster.
250

Automatic task and data mapping in shared memory architectures / Mapeamento automático de processos e dados em arquiteturas de memória compartilhada

Diener, Matthias January 2015 (has links)
Arquiteturas paralelas modernas têm hierarquias de memória complexas, que consistem de vários níveis de memórias cache privadas e compartilhadas, bem como Non-Uniform Memory Access (NUMA) devido a múltiplos controladores de memória por sistema. Um dos grandes desafios dessas arquiteturas é melhorar a localidade e o balanceamento de acessos à memória de tal forma que a latência média de acesso à memória é reduzida. Dessa forma, o desempenho e a eficiência energética de aplicações paralelas podem ser melhorados. Os acessos podem ser melhorados de duas maneiras: (1) processos que acessam dados compartilhados (comunicação entre processos) podem ser alocados em unidades de execução próximas na hierarquia de memória, a fim de melhorar o uso das caches. Esta técnica é chamada de mapeamento de processos. (2) Mapear as páginas de memória que cada processo acessa ao nó NUMA que ele está sendo executado, assim, pode-se reduzir o número de acessos a memórias remotas em arquiteturas NUMA. Essa técnica é conhecida como mapeamento de dados. Para melhores resultados, os mapeamentos de processos e dados precisam ser realizados de forma integrada. Trabalhos anteriores nesta área executam os mapeamentos separadamente, o que limita os ganhos que podem ser alcançados. Além disso, a maioria dos mecanismos anteriores exigem operações caras, como traços de acessos à memória, para realizar o mapeamento, além de exigirem mudanças no hardware ou na aplicação paralela. Estes mecanismos não podem ser considerados soluções genéricas para o problema de mapeamento. Nesta tese, fazemos duas contribuições principais para o problema de mapeamento. Em primeiro lugar, nós introduzimos um conjunto de métricas e uma metodologia para analisar aplicações paralelas, a fim de determinar a sua adequação para um melhor mapeamento e avaliar os possíveis ganhos que podem ser alcançados através desse mapeamento otimizado. Em segundo lugar, propomos um mecanismo que executa o mapeamento de processos e dados online. Este mecanismo funciona no nível do sistema operacional e não requer alterações no hardware, os códigos fonte ou bibliotecas. Uma extensa avaliação com múltiplos conjuntos de carga de trabalho paralelos mostram consideráveis melhorias em desempenho e eficiência energética. / Reducing the cost of memory accesses, both in terms of performance and energy consumption, is a major challenge in shared-memory architectures. Modern systems have deep and complex memory hierarchies with multiple cache levels and memory controllers, leading to a Non-Uniform Memory Access (NUMA) behavior. In such systems, there are two ways to improve the memory affinity: First, by mapping tasks that share data (communicate) to cores with a shared cache, cache usage and communication performance are improved. Second, by mapping memory pages to memory controllers that perform the most accesses to them and are not overloaded, the average cost of accesses is reduced. We call these two techniques task mapping and data mapping, respectively. For optimal results, task and data mapping need to be performed in an integrated way. Previous work in this area performs the mapping only separately, which limits the gains that can be achieved. Furthermore, most previous mechanisms require expensive operations, such as communication or memory access traces, to perform the mapping, require changes to the hardware or to the parallel application, or use a simple static mapping. These mechanisms can not be considered generic solutions for the mapping problem. In this thesis, we make two contributions to the mapping problem. First, we introduce a set of metrics and a methodology to analyze parallel applications in order to determine their suitability for an improved mapping and to evaluate the possible gains that can be achieved using an optimized mapping. Second, we propose two automatic mechanisms that perform task mapping and combined task/data mapping, respectively, during the execution of a parallel application. These mechanisms work on the operating system level and require no changes to the hardware, the applications themselves or their runtime libraries. An extensive evaluation with parallel applications from multiple benchmark suites as well as real scientific applications shows substantial performance and energy efficiency improvements that are significantly higher than simple mechanisms and previous work, while maintaining a low overhead.

Page generated in 0.0506 seconds