Spelling suggestions: "subject:"processamento : alta desempenho""
21 |
Study of load distribution measures for high-performance applications / Estudos de medidas de distribuição de carga para aplicação de alto desempenhoRodrigues, Flavio Alles January 2016 (has links)
Balanceamento de carga é essencial para que aplicações paralelas tenham desempenho adequado. Conforme sistemas de computação paralelos crescem, o custo de uma má distribuição de carga também aumenta. Porém, o comportamento dinâmico que a carga computacional possui em certas aplicações pode induzir disparidades na carga atribuída a cada recurso. Portanto, o repetitivo processo de redistribuição de carga realizado durante a execução é crucial para que problemas de grande escala que possuam tais características possam ser resolvidos. Medidas que quantifiquem a distribuição de carga são um importante aspecto desse procedimento. Por estas razões, métricas frequentemente utilizadas como indicadores da distribuição de carga em aplicações paralelas são investigadas nesse estudo. Dado que balanceamento de carga é um processo dinâmico e recorrente, a investigação examina como tais métricas quantificam a distribuição de carga em intervalos regulares durante a execução da aplicação paralela. Seis métricas são avaliadas: percent imbalance, imbalance percentage, imbalance time, standard deviation, skewness e kurtosis. A análise revela virtudes e deficiências que estas medidas possuem, bem como as diferenças entres as mesmas como descritores da distribuição de carga em aplicações paralelas. Uma investigação como esta não tem precedentes na literatura especializada. / Load balance is essential for parallel applications to perform at their highest possible levels. As parallel systems grow, the cost of poor load distribution increases in tandem. However, the dynamic behavior the distribution of load possesses in certain applications can induce disparities in computational loads among resources. Therefore, the process of repeatedly redistributing load as execution progresses is critical to achieve the performance necessary to compute large scale problems with such characteristics. Metrics quantifying the load distribution are an important facet of this procedure. For these reasons, measures commonly used as load distribution indicators in HPC applications are investigated in this study. Considering the dynamic and recurrent aspect in load balancing, the investigation examines how these metrics quantify load distribution at regular intervals during a parallel application execution. Six metrics are evaluated: percent imbalance, imbalance percentage, imbalance time, standard deviation, skewness, and kurtosis. The analysis reveals the virtues and deficiencies each metric has, as well as the differences they register as descriptors of load distribution progress in parallel applications. As far as we know, an investigation as the one performed in this work is unprecedented.
|
22 |
Cell selection to minimize power in high-performance industrial microprocessor designs / Seleção de portas lógicas para minimização de potência em projetos de microprocessadores de alto desempenhoReimann, Tiago Jose January 2016 (has links)
Este trabalho aborda o problema de dimensionamento portas lógicas e assinalamento de Vt para otimização de potência, área e temporização em circuitos integrados modernos. O fluxo proposto é aplicado aos conjuntos de circuitos de teste dos Concursos do International Symposium on Physical Design (ISPD) de 2012 e 2013. Este fluxo também é adapatado e avaliado nos estágios pós posicionamento e roteamento global em projetos industriais de circuitos integrados, que utilizam uma ferramenta precisa de análise estática de temporização. As técnicas propostas geram as melhores soluções para todos os circuitos de teste do Concurso do ISPD 2013 (no qual foi a ferramenta vencedora), com em média 8% menos consumo de potência estática quando comparada com os outros concorrentes. Além disso, após algumas modificações nos algoritmos, nós reduzimos o consumo em mais 10% em média a pontência estáticas com relação aos resultados do concurso. O foco deste trabalho é desenvolver e aplicar um algoritmo estado-da-arte de seleção portas lógicas para melhorar ainda mais projetos industriais de alto desempenho já otimizados após as fases de posicionamento e roteamento do fluxo de projeto físico industrial. Vamos apresentar e discutir vários problemas encontrados quando da aplicação de técnicas de otimização global em projetos industriais reais que não são totalmente cobertos em publicações encontradas na literatura. Os métodos propostos geram as melhores soluções para todos os circuitos de referência no Concurso do ISPD 2013, no qual foi a solução vencedora. Considerando a aplicação industrial, as técnicas propostas reduzem a potência estática em até 18,2 %, com redução média de 10,4 %, sem qualquer degradação na qualidade de temporização do circuito. / This work addresses the gate sizing and Vt assignment problem for power, area and timing optimization in modern integrated circuits (IC). The proposed flow is applied to the Benchmark Suites of the International Symposium on Physical Design (ISPD) 2012 and 2013 Contests. It is also adapted and evaluated in the post placement and post global routing stage of an industrial IC design flow using a sign-off static timing analysis engine. The proposed techniques are able to generate the best solutions for all benchmarks in the ISPD 2013 Contest (in which we were the winning team), with on average 8% lower leakage with respect to all other contestants. Also, after some refinements in the algorithms, we reduce leakage by another 10% on average over the contest results. The focus of this work is to develop and apply a state-of-the-art cell selection algorithm to further improve already optimized high-performance industrial designs after the placement and routing stages of the industrial physical design flow. We present the basic concepts involved in the gate sizing problem and how earlier literature addresses it. Several problems found when applying global optimization techniques in real-life industrial designs, which are not fully covered in publications found in literature, are presented and discussed. Considering the industrial application, the proposed techniques reduce leakage power by up to 18.2%, with average reduction of 10.4% without any degradation in timing quality.
|
23 |
A benchmark suite for distributed stream processing systems / Um benchmark suite para sistemas distribuídos de stream processingBordin, Maycon Viana January 2017 (has links)
Um dado por si só não possui valor algum, a menos que ele seja interpretado, contextualizado e agregado com outros dados, para então possuir valor, tornando-o uma informação. Em algumas classes de aplicações o valor não está apenas na informação, mas também na velocidade com que essa informação é obtida. As negociações de alta frequência (NAF) são um bom exemplo onde a lucratividade é diretamente proporcional a latência (LOVELESS; STOIKOV; WAEBER, 2013). Com a evolução do hardware e de ferramentas de processamento de dados diversas aplicações que antes levavam horas para produzir resultados, hoje precisam produzir resultados em questão de minutos ou segundos (BARLOW, 2013). Este tipo de aplicação tem como característica, além da necessidade de processamento em tempo-real ou quase real, a ingestão contínua de grandes e ilimitadas quantidades de dados na forma de tuplas ou eventos. A crescente demanda por aplicações com esses requisitos levou a criação de sistemas que disponibilizam um modelo de programação que abstrai detalhes como escalonamento, tolerância a falhas, processamento e otimização de consultas. Estes sistemas são conhecidos como Stream Processing Systems (SPS), Data Stream Management Systems (DSMS) (CHAKRAVARTHY, 2009) ou Stream Processing Engines (SPE) (ABADI et al., 2005). Ultimamente estes sistemas adotaram uma arquitetura distribuída como forma de lidar com as quantidades cada vez maiores de dados (ZAHARIA et al., 2012). Entre estes sistemas estão S4, Storm, Spark Streaming, Flink Streaming e mais recentemente Samza e Apache Beam. Estes sistemas modelam o processamento de dados através de um grafo de fluxo com vértices representando os operadores e as arestas representando os data streams. Mas as similaridades não vão muito além disso, pois cada sistema possui suas particularidades com relação aos mecanismos de tolerância e recuperação a falhas, escalonamento e paralelismo de operadores, e padrões de comunicação. Neste senário seria útil possuir uma ferramenta para a comparação destes sistemas em diferentes workloads, para auxiliar na seleção da plataforma mais adequada para um trabalho específico. Este trabalho propõe um benchmark composto por aplicações de diferentes áreas, bem como um framework para o desenvolvimento e avaliação de SPSs distribuídos. / Recently a new application domain characterized by the continuous and low-latency processing of large volumes of data has been gaining attention. The growing number of applications of such genre has led to the creation of Stream Processing Systems (SPSs), systems that abstract the details of real-time applications from the developer. More recently, the ever increasing volumes of data to be processed gave rise to distributed SPSs. Currently there are in the market several distributed SPSs, however the existing benchmarks designed for the evaluation this kind of system covers only a few applications and workloads, while these systems have a much wider set of applications. In this work a benchmark for stream processing systems is proposed. Based on a survey of several papers with real-time and stream applications, the most used applications and areas were outlined, as well as the most used metrics in the performance evaluation of such applications. With these information the metrics of the benchmark were selected as well as a list of possible application to be part of the benchmark. Those passed through a workload characterization in order to select a diverse set of applications. To ease the evaluation of SPSs a framework was created with an API to generalize the application development and collect metrics, with the possibility of extending it to support other platforms in the future. To prove the usefulness of the benchmark, a subset of the applications were executed on Storm and Spark using the Azure Platform and the results have demonstrated the usefulness of the benchmark suite in comparing these systems.
|
24 |
On the investigation of the joint use of self-* properties and peer-to-peer for network management / Investigação do uso integrado de propriedades self-* e peer-to-peer para o gerenciamento de redesMarquezan, Clarissa Cassales January 2010 (has links)
Ao longo dos anos, a comunidade de gerenciamento de redes têm sido levada a criar alternativas de gerenciamento que sejam capazes de lidar com problemas de heterogeneidade, escalabilidade, confiabilidade, e com a redução da intervenção humana. Atualmente, existem duas principais alternativas empregadas na definição e desenvolvimento de soluções de gerenciamento de redes. A primeira utiliza computação autonômica e propriedades self-*, enquanto a segunda utiliza conceitos e tecnologias peer-to-peer (P2P). Geralmente, as investigações relacionadas com a aplicação de computação autonômica e propriedades self-* no gerenciamento de redes são focadas na definição de modelos de alto nível (ex., ontologias e políticas), os quais são capazes de determinar as ações autônomas do sistema. Em contrapartida, pesquisas relacionadas com P2P no gerenciamento de redes estão mais focadas na definição da infraestrutura de comunicação da solução de gerenciamento. Sendo assim, de um lado existem as pesquisas ligadas à aplicação de computação autonômica e propriedades self-* que sofrem com o problema da falta de aproximação dos modelos de alto nível com a infraestrutura de gerenciamento, e do outro lado existem as que aplicam P2P e que sofrem com o problema oposto. Dado o cenário descrito acima, essa tese tem como objetivo investigar e esclarecer quais são as questões e características envolvidas na integração de propriedades self-* e P2P que contribuem para a definição de novas alternativas de soluções de gerenciamento de redes. A metodologia utilizada nas investigações baseia-se na definição de requisitos de gerenciamento, de questões de integração para o uso conjunto de propriedades self-* e P2P, e na identificação e desenvolvimento de dois estudos de caso. A análise desses estudos de casos mostrou que o primeiro (solução de auto-cura baseada em P2P) é responsável pela quebra do paradigma tradicional do uso de gerenciamento por delegação em cima de infraestruturas P2P. O segundo estudo de caso (auto-organização baseado em P2P) intensifica essa quebra de paradigma ao explorar capacidades de aplicações P2P na definição das propriedades self-* aplicadas ao gerenciamento de redes. As maiores contribuições dessa tese são: (i) a mudança no foco no desenvolvimento das soluções de gerenciamento de redes dos aspectos morfológicos (tais como, APIs, protocolos, arquiteturas, e frameworks) para a definição de algoritmos sofisticados de gerenciamento; (ii) a introdução de técnicas para explorar comportamentos paralelos e cooperativos dos peers de gerenciamento que executam tais algoritmos; (iii) a definição dos design issues que possibilitam o desenvolvimento de ambientes de gerenciamento de redes verdadeiramente distribuídos e cooperativos, onde o papel dos administradores humanos é minimizado e os gerentes estão embutidos dentro dos elementos gerenciados e não na borda dos sistemas. Em resumo, essa tese mostra como repensar a definição e execução de tarefas de gerenciamento de redes. / Over the years, the network management community has been pushed towards the design of alternative management approaches able to support heterogeneity, scalability, reliability, and minor human intervention. Currently, there are two major alternatives that have been employed on the design and development of network management solutions. The first one uses autonomic computing and self-* properties, while the second one employs Peer-To-Peer (P2P) concepts and technologies. In general, the investigations related to self-* properties and autonomic computing applied to network management focus their efforts on defining high level models (e.g., ontologies and policies) that are able to determine and drive the autonomous actions of the system. On the other side, P2P research applied to network management is mainly target to define the communication infrastructure of management solution. Thus, in the case of autonomic and self-* properties, there is a lack of investigations approximating the high level models to the management infrastructure, while the P2P investigations suffer from the opposite problem. Therefore, the investigations carried on this thesis aim at bringing knowledge to issues involving the joint use of self-* properties and P2P to contribute with the development of alternatives for designing network management solutions. The methodology used on the investigations was based on the definition of management requirements, integration issues for the design of the joint use of self-* properties and P2P, and the identification/ development of two case studies. Analyzing these case studies, it is was possible to conclude that the first case study (self-healing P2P solution) had an importance in terms of breaking the traditional paradigms of using Management by Delegation on top of P2P infrastructures for network management. Embracing this break through, the second case study (self-organizing P2P solution) gave a step further on the development of P2P application capabilities for the design of self-* properties applied to network management. The major contributions of this thesis are: (i) the change on the angle of network management solution development from morphological aspects (such as APIs, protocols, architectures, and frameworks) to the design of sophisticated management algorithms; (ii) the introduction of techniques to explore parallel and cooperative behavior of management peers running the management algorithms; (iii) the establishment of design issues that enable the development of truly distributed and cooperative network management environment, where the presence of the human administrator role is minimized and the managers are embedded inside the managed elements and not in the borders of the system. In summary, this thesis shows how to rethink and improve the design and execution of network management tasks.
|
25 |
MPI2.NET : criação dinâmica de tarefas com orientação a objetos / MPI2.NET: dynamic tasks creation with object orientationAfonso, 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.
|
26 |
Reconfiguração automática de I/O para aplicações paralelas no sistema de arquivos dNFSp2Kassick, Rodrigo Virote January 2010 (has links)
Diversas aplicações executadas em ambientes de cluster necessitam de uma área de armazenamento permanente com alta capacidade e que forneça uma visão homogênea dos dados entre todos os nós. Esta área compartilhada é comumente implementada através de um sistema de arquivos distribuído, permitindo o acesso através da abstração mais comum para gerenciamento de dados. A disparidade entre poder de processamento e desempenho de dispositivos de armazenamento atuais, no entanto, torna tais sistemas um ponto crítico ao desempenho de aplicações paralelas que lidam com grandes volumes de dados. Ambientes de cluster podem apresentar execução concorrente de aplicações em conjuntos independentes de máquinas. Desta forma, uma grande quantidade de clientes com características distintas farão acessos ao sistema de arquivos compartilhado. Em tais casos, o dimensionamento do sistema de armazenamento distribuído nem sempre poderá prover o desempenho necessário à execução das aplicações com os recursos inicialmente a ele destinados. O presente trabalho propõe uma estratégia de reconfiguração dinâmica para o sistema de arquivos dNFSp. Esta estratégia leva em consideração o comportamento temporal presente em aplicações paralelas para inserir servidores de dados exclusivos a aplicações com alta demanda de I/O. Com a utilização de servidores exclusivos, torna-se possível isolar aplicações com comportamentos que causam grande perda de desempenho no sistema como um todo. Foi desenvolvida uma ferramenta de monitoramento do desempenho junto aos servidores do dNFSp, de forma a solicitar novos servidores apenas quando a interação das fases de I/O das aplicações em execução interferirem no desempenho do sistema. Esses novos servidores são solicitados para um sistema escalonador de recursos para cluster, de forma a utilizar nós livres para o armazenamento de dados. Os resultados mostram que a estratégia proposta é capaz de detectar a saturação do sistema de armazenamento e iniciar os servidores exclusivos, levando a um ganho de desempenho para as aplicações em execução. A reconfiguração dinâmica também mostrou-se capaz de evitar baixos desempenhos causados pela interação dos períodos de inatividade de aplicações temporais e pela utilização de diversos processos de I/O em um único nó. / Several applications executed in cluster environments need a shared storage area with high capacity and a homogeneous view of the stored data to all processing nodes. This area is commonly implemented as a distributed file system, allowing the access to data through the well-known file abstraction. The great gap in performance of processors and storage devices, on the other hand, makes such system a critical point to the performance of parallel applications. A common trait of large cluster environments is the concurrent execution of applications. In this scenario, many clients with distinct behaviors will compete to access the shared storage system. The number of I/O resources originally dedicated to this shared storage may provide unsatisfactory performance to the applications in this case. This work proposes a dynamic reconfiguration strategy for the dNFSp file system. This strategy takes into consideration the temporal behavior of distributed applications to launch dedicated I/O resources to the more I/O-demanding applications. The exclusiveness of data servers allows for the isolation of access patterns that cause contention on the system, resulting in improved performance for all executing applications. We developed a tool to monitor the performance of the storage servers in order to launch new servers only when the interaction of I/O phases from running applications cause each other’s performance to drop. These resources are required to a batch scheduler system present on the cluster, allowing the use of computing nodes for temporary data storage. The results show that the proposed metrics lead to the detection of performance saturation on the file system and the start of the dedicated resources, resulting in increased I/O performance. The reconfiguration has also been able to avoid some low performance situations caused by interactions of inactivity periods from temporal applications and by utilization of several I/O processes on the same cluster node.
|
27 |
High performance trace replay event simulation of parallel programs behavior / Ferramenta de alto desempenho para análise de comportamento de programas paralelos baseada em rastos de execuçãoKorndorfer, Jonas Henrique Muller January 2016 (has links)
Sistemas modernos de alto desempenho compreendem milhares a milhões de unidades de processamento. O desenvolvimento de uma aplicação paralela escalável para tais sistemas depende de um mapeamento preciso da utilização recursos disponíveis. A identificação de recursos não utilizados e os gargalos de processamento requere uma boa análise desempenho. A observação de rastros de execução é uma das técnicas mais úteis para esse fim. Infelizmente, o rastreamento muitas vezes produz grandes arquivos de rastro, atingindo facilmente gigabytes de dados brutos. Portanto ferramentas para análise de desempenho baseadas em rastros precisam processar esses dados para uma forma legível e serem eficientes a fim de permitirem uma análise rápida e útil. A maioria das ferramentas existentes, tais como Vampir, Scalasca e TAU, focam no processamento de formatos de rastro com semântica associada, geralmente definidos para lidar com programas desenvolvidos com bibliotecas populares como OpenMP, MPI e CUDA. No entanto, nem todas aplicações paralelas utilizam essas bibliotecas e assim, algumas vezes, essas ferramentas podem não ser úteis. Felizmente existem outras ferramentas que apresentam uma abordagem mais dinâmica, utilizando um formato de arquivo de rastro aberto e sem semântica específica. Algumas dessas ferramentas são Paraver, Pajé e PajeNG. Por outro lado, ser genérico tem custo e assim tais ferramentas frequentemente apresentam baixo desempenho para o processamento de grandes rastros. O objetivo deste trabalho é apresentar otimizações feitas para o conjunto de ferramentas PajeNG. São apresentados o desenvolvimento de um estratégia de paralelização para o PajeNG e uma análise de desempenho para demonstrar nossos ganhos. O PajeNG original funciona sequencialmente, processando um único arquivo de rastro que contém todos os dados do programa rastreado. Desta forma, a escalabilidade da ferramenta fica muito limitada pela leitura dos dados. Nossa estratégia divide o arquivo em pedaços permitindo seu processamento em paralelo. O método desenvolvido para separar os rastros permite que cada pedaço execute em um fluxo de execução separado. Nossos experimentos foram executados em máquinas com acesso não uniforme à memória (NUMA).Aanálise de desempenho desenvolvida considera vários aspectos como localidade das threads, o número de fluxos, tipo de disco e também comparações entre os nós NUMA. Os resultados obtidos são muito promissores, escalando o PajeNG cerca de oito a onze vezes, dependendo da máquina. / Modern high performance systems comprise thousands to millions of processing units. The development of a scalable parallel application for such systems depends on an accurate mapping of application processes on top of available resources. The identification of unused resources and potential processing bottlenecks requires good performance analysis. The trace-based observation of a parallel program execution is one of the most helpful techniques for such purpose. Unfortunately, tracing often produces large trace files, easily reaching the order of gigabytes of raw data. Therefore tracebased performance analysis tools have to process such data to a human readable way and also should be efficient to allow an useful analysis. Most of the existing tools such as Vampir, Scalasca, TAU have focus on the processing of trace formats with a fixed and well-defined semantic. The corresponding file format are usually proposed to handle applications developed using popular libraries like OpenMP, MPI, and CUDA. However, not all parallel applications use such libraries and so, sometimes, these tools cannot be useful. Fortunately, there are other tools that present a more dynamic approach by using an open trace file format without specific semantic. Some of these tools are the Paraver, Pajé and PajeNG. However the fact of being generic comes with a cost. These tools very frequently present low performance for the processing of large traces. The objective of this work is to present performance optimizations made in the PajeNG tool-set. This comprises the development of a parallelization strategy and a performance analysis to set our gains. The original PajeNG works sequentially by processing a single trace file with all data from the observed application. This way, the scalability of the tool is very limited by the reading of the trace file. Our strategy splits such file to process several pieces in parallel. The created method to split the traces allows the processing of each piece in each thread. The experiments were executed in non-uniform memory access (NUMA) machines. The performance analysis considers several aspects like threads locality, number of flows, disk type and also comparisons between the NUMA nodes. The obtained results are very promising, scaling up the PajeNG about eight to eleven times depending on the machine.
|
28 |
Study of load distribution measures for high-performance applications / Estudos de medidas de distribuição de carga para aplicação de alto desempenhoRodrigues, Flavio Alles January 2016 (has links)
Balanceamento de carga é essencial para que aplicações paralelas tenham desempenho adequado. Conforme sistemas de computação paralelos crescem, o custo de uma má distribuição de carga também aumenta. Porém, o comportamento dinâmico que a carga computacional possui em certas aplicações pode induzir disparidades na carga atribuída a cada recurso. Portanto, o repetitivo processo de redistribuição de carga realizado durante a execução é crucial para que problemas de grande escala que possuam tais características possam ser resolvidos. Medidas que quantifiquem a distribuição de carga são um importante aspecto desse procedimento. Por estas razões, métricas frequentemente utilizadas como indicadores da distribuição de carga em aplicações paralelas são investigadas nesse estudo. Dado que balanceamento de carga é um processo dinâmico e recorrente, a investigação examina como tais métricas quantificam a distribuição de carga em intervalos regulares durante a execução da aplicação paralela. Seis métricas são avaliadas: percent imbalance, imbalance percentage, imbalance time, standard deviation, skewness e kurtosis. A análise revela virtudes e deficiências que estas medidas possuem, bem como as diferenças entres as mesmas como descritores da distribuição de carga em aplicações paralelas. Uma investigação como esta não tem precedentes na literatura especializada. / Load balance is essential for parallel applications to perform at their highest possible levels. As parallel systems grow, the cost of poor load distribution increases in tandem. However, the dynamic behavior the distribution of load possesses in certain applications can induce disparities in computational loads among resources. Therefore, the process of repeatedly redistributing load as execution progresses is critical to achieve the performance necessary to compute large scale problems with such characteristics. Metrics quantifying the load distribution are an important facet of this procedure. For these reasons, measures commonly used as load distribution indicators in HPC applications are investigated in this study. Considering the dynamic and recurrent aspect in load balancing, the investigation examines how these metrics quantify load distribution at regular intervals during a parallel application execution. Six metrics are evaluated: percent imbalance, imbalance percentage, imbalance time, standard deviation, skewness, and kurtosis. The analysis reveals the virtues and deficiencies each metric has, as well as the differences they register as descriptors of load distribution progress in parallel applications. As far as we know, an investigation as the one performed in this work is unprecedented.
|
29 |
Cell selection to minimize power in high-performance industrial microprocessor designs / Seleção de portas lógicas para minimização de potência em projetos de microprocessadores de alto desempenhoReimann, Tiago Jose January 2016 (has links)
Este trabalho aborda o problema de dimensionamento portas lógicas e assinalamento de Vt para otimização de potência, área e temporização em circuitos integrados modernos. O fluxo proposto é aplicado aos conjuntos de circuitos de teste dos Concursos do International Symposium on Physical Design (ISPD) de 2012 e 2013. Este fluxo também é adapatado e avaliado nos estágios pós posicionamento e roteamento global em projetos industriais de circuitos integrados, que utilizam uma ferramenta precisa de análise estática de temporização. As técnicas propostas geram as melhores soluções para todos os circuitos de teste do Concurso do ISPD 2013 (no qual foi a ferramenta vencedora), com em média 8% menos consumo de potência estática quando comparada com os outros concorrentes. Além disso, após algumas modificações nos algoritmos, nós reduzimos o consumo em mais 10% em média a pontência estáticas com relação aos resultados do concurso. O foco deste trabalho é desenvolver e aplicar um algoritmo estado-da-arte de seleção portas lógicas para melhorar ainda mais projetos industriais de alto desempenho já otimizados após as fases de posicionamento e roteamento do fluxo de projeto físico industrial. Vamos apresentar e discutir vários problemas encontrados quando da aplicação de técnicas de otimização global em projetos industriais reais que não são totalmente cobertos em publicações encontradas na literatura. Os métodos propostos geram as melhores soluções para todos os circuitos de referência no Concurso do ISPD 2013, no qual foi a solução vencedora. Considerando a aplicação industrial, as técnicas propostas reduzem a potência estática em até 18,2 %, com redução média de 10,4 %, sem qualquer degradação na qualidade de temporização do circuito. / This work addresses the gate sizing and Vt assignment problem for power, area and timing optimization in modern integrated circuits (IC). The proposed flow is applied to the Benchmark Suites of the International Symposium on Physical Design (ISPD) 2012 and 2013 Contests. It is also adapted and evaluated in the post placement and post global routing stage of an industrial IC design flow using a sign-off static timing analysis engine. The proposed techniques are able to generate the best solutions for all benchmarks in the ISPD 2013 Contest (in which we were the winning team), with on average 8% lower leakage with respect to all other contestants. Also, after some refinements in the algorithms, we reduce leakage by another 10% on average over the contest results. The focus of this work is to develop and apply a state-of-the-art cell selection algorithm to further improve already optimized high-performance industrial designs after the placement and routing stages of the industrial physical design flow. We present the basic concepts involved in the gate sizing problem and how earlier literature addresses it. Several problems found when applying global optimization techniques in real-life industrial designs, which are not fully covered in publications found in literature, are presented and discussed. Considering the industrial application, the proposed techniques reduce leakage power by up to 18.2%, with average reduction of 10.4% without any degradation in timing quality.
|
30 |
A benchmark suite for distributed stream processing systems / Um benchmark suite para sistemas distribuídos de stream processingBordin, Maycon Viana January 2017 (has links)
Um dado por si só não possui valor algum, a menos que ele seja interpretado, contextualizado e agregado com outros dados, para então possuir valor, tornando-o uma informação. Em algumas classes de aplicações o valor não está apenas na informação, mas também na velocidade com que essa informação é obtida. As negociações de alta frequência (NAF) são um bom exemplo onde a lucratividade é diretamente proporcional a latência (LOVELESS; STOIKOV; WAEBER, 2013). Com a evolução do hardware e de ferramentas de processamento de dados diversas aplicações que antes levavam horas para produzir resultados, hoje precisam produzir resultados em questão de minutos ou segundos (BARLOW, 2013). Este tipo de aplicação tem como característica, além da necessidade de processamento em tempo-real ou quase real, a ingestão contínua de grandes e ilimitadas quantidades de dados na forma de tuplas ou eventos. A crescente demanda por aplicações com esses requisitos levou a criação de sistemas que disponibilizam um modelo de programação que abstrai detalhes como escalonamento, tolerância a falhas, processamento e otimização de consultas. Estes sistemas são conhecidos como Stream Processing Systems (SPS), Data Stream Management Systems (DSMS) (CHAKRAVARTHY, 2009) ou Stream Processing Engines (SPE) (ABADI et al., 2005). Ultimamente estes sistemas adotaram uma arquitetura distribuída como forma de lidar com as quantidades cada vez maiores de dados (ZAHARIA et al., 2012). Entre estes sistemas estão S4, Storm, Spark Streaming, Flink Streaming e mais recentemente Samza e Apache Beam. Estes sistemas modelam o processamento de dados através de um grafo de fluxo com vértices representando os operadores e as arestas representando os data streams. Mas as similaridades não vão muito além disso, pois cada sistema possui suas particularidades com relação aos mecanismos de tolerância e recuperação a falhas, escalonamento e paralelismo de operadores, e padrões de comunicação. Neste senário seria útil possuir uma ferramenta para a comparação destes sistemas em diferentes workloads, para auxiliar na seleção da plataforma mais adequada para um trabalho específico. Este trabalho propõe um benchmark composto por aplicações de diferentes áreas, bem como um framework para o desenvolvimento e avaliação de SPSs distribuídos. / Recently a new application domain characterized by the continuous and low-latency processing of large volumes of data has been gaining attention. The growing number of applications of such genre has led to the creation of Stream Processing Systems (SPSs), systems that abstract the details of real-time applications from the developer. More recently, the ever increasing volumes of data to be processed gave rise to distributed SPSs. Currently there are in the market several distributed SPSs, however the existing benchmarks designed for the evaluation this kind of system covers only a few applications and workloads, while these systems have a much wider set of applications. In this work a benchmark for stream processing systems is proposed. Based on a survey of several papers with real-time and stream applications, the most used applications and areas were outlined, as well as the most used metrics in the performance evaluation of such applications. With these information the metrics of the benchmark were selected as well as a list of possible application to be part of the benchmark. Those passed through a workload characterization in order to select a diverse set of applications. To ease the evaluation of SPSs a framework was created with an API to generalize the application development and collect metrics, with the possibility of extending it to support other platforms in the future. To prove the usefulness of the benchmark, a subset of the applications were executed on Storm and Spark using the Azure Platform and the results have demonstrated the usefulness of the benchmark suite in comparing these systems.
|
Page generated in 0.1352 seconds