Spelling suggestions: "subject:"parallelism.""
1 |
Extending the Usability of a Dynamic Tuning EnvironmentCaymes Scutari, Paola Guadalupe 19 July 2007 (has links)
La demanda de cómputo de altas prestaciones está en constante especialmente en el área científica ya que debe resolver problemas complejos. En general, el volumen de datos y las operaciones que deben realizarse sobre ellos requieren la utilización de sistemas muy potentes. Ello ha conducido a una mayor utilización del paradigma paralelo/distribuido. El proceso de optimización, denominado proceso de sintonización, es el proceso mediante el cual el comportamiento de la aplicación es adaptado y mejorado a travÎs de la modificación de sus parámetros críticos. El proceso de sintonización incluye varias fases. En primer lugar, durante una fase de monitorización se recoge información acerca del comportamiento de la aplicación. A continuación, dicha información es analizada para detectar problemas, deducir las causas y determinar soluciones. Finalmente, deben aplicarse los cambios necesarios en el código de la aplicación para resolver el problema y así mejorar su rendimiento. Afortunadamente, existen diferentes herramientas y aproximaciones para ayudar a los usuarios en las diferentes fases de optimización (monitorización, análisis o sintonización). Una de las herramientas disponibles es MATE (Monitoring, Analysis and Tuning Environment), un entorno para la sintonización dinámica y automática de aplicaciones paralelas. MATE, como su nombre indica, consiste en tres fases continuas e iterativas para adaptar el comportamiento de la aplicación de acuerdo al estado actual del ambiente de ejecución. El conocimiento que utiliza MATE para sintonizar los problemas de rendimiento es encapsulado en módulos de software denominados "tunlets". Cada tunlet provee la lógica necesaria para recolectar información de la ejecución de la aplicación, analizarla y decidir cuáles son las acciones de sintonización necesarias. El objetivo del presente trabajo es extender la usabilidad de MATE, cubriendo dos aspectos diferentes de MATE: - la mejora del rendimiento alcanzado por el análisis centralizado realizado por MATE, dado que representa un cuello de botella cuando la aplicación crece. En este trabajo presentamos una alternativa para lograr que MATE escale. - hacer de MATE una herramienta más amigable para facilitar la inclusión de conocimiento en MATE. De esta manera, se logra que MATE sea transparente. Respecto del primer aspecto, se propone una nueva aproximación para ejecutar el proceso de análisis, denominada Distributed-Hierarchical Collecting-Preprocessing Approach. Esta nueva aproximación se basa en la recolección distribuida de eventos lo que alivia la recolección centralizada realizada por MATE en su implementación original, así como también el preprocesamiento de las operaciones acumulativas o comparativas, siempre que sea posible. De esta manera, el Global Analyzer recibe de cada Collector-Preprocessor una estructura que condensa resumida sólo la información necesaria para la evaluación global de modelo de rendimiento, lo que reduce considerablemente la sobrecarga sufrida en la aproximación centralizada. De esta manera, MATE presenta propiedades de escalabilidad. Respecto del segundo aspecto, se propone una metodología, incluyendo un lenguaje y un traductor dise-ados y desarrollados ad hoc para insertar tunlets (conocimiento) en MATE de forma automática. Utilizando la metodología propuesta, el usuario no necesita entrar en detalles de implementación de MATE. Así, mediante la definición de un conjunto de abstracciones sobre la aplicación y sobre el modelo de rendimiento, las abstracciones pueden formalizarse en la especificación de un tunlet por medio del lenguaje propuesto. Tal especificación será automáticamente traducida en un tunlet listo para utilizarse en MATE. Escalabilidad y transparencia son dos cualidades necesarias en MATE para que sea una herramienta más útil y amigable para los usuarios. Las propuestas presentadas intentan proveer MATE con tales características. La experimentación, confirma la viabilidad de las propuestas. / In the last years, computing performance demand has been in increase specially in the scientific field that has to solve complex problems. In general the data set size and the complexity of the operations over them require the use of very powerful systems. Thus, the increasing necessity for high performance systems/computing has been directing the attention of the scientific field towards the parallel/distributed paradigm. The optimization process, so-called tuning process, is the process followed in order to adapt and improve the behaviour of the applications by modifying their critical parameters. It includes several and successive phases. Firstly, during a monitoring phase the information about the behaviour of the application is captured. Next, the information is analyzed, by looking for bottlenecks, deducing their causes and trying to determine the adequate actions to eliminate them. Finally, appropriate changes have to be applied to the code to solve the problems and improve the performance. Fortunately, through the years different approaches and tools have been developed with the aim of helping the user during some of the optimization phases (monitoring, analysis or tuning phases). One of the available tools is MATE (Monitoring, Analysis and Tuning Environment), which is an automatic and dynamic tuning environment for parallel applications. MATE works in three continuous and iterative phases in order to adapt the deployment of the application according to the current state of the execution environment. MATE includes the knowledge to tune performance problems in pieces of software called --tunlets'. Each tunlet includes the logic to collect behavioural information, analyze it on the fly and decide what the required tuning actions are. The objective of this work is to extend the usability of MATE. Our work covers two different aspects of MATE: - the improvement of the performance reached by the centralized analysis executed by MATE, due to it turns in a bottleneck as the size of the application increases. Thus, we provide an alternative to make MATE scalable. - the increase in the user-friendliness of MATE in order to facilitate the inclusion of new performance knowledge in it. Thus, we make MATE transparent for the users. According to the first aspect, we propose a novel approach to execute the analysis process, called Distributed-Hierarchical Collecting-Preprocessing Approach. This approach is based on the distributed collection of events which alleviates the centralized old-fashion in which collection was done, and in the preprocessing of cumulative or comparative operations as possible. Thus, the Global Analyzer receives just the necessary information condensed in a unique message from each Collector-Preprocessor, which considerably reduces the overload of Global Analyzer. In this way, MATE is provided with scalability properties. According to the second aspect, we provide a methodology, including a designed language and a developed translator to automatically insert tunlets (knowledge) in MATE. When some problem has to be tuned in a parallel application the user has to develop the corresponding tunlet. By using our methodology, the user is exempted from being involved in implementation details of MATE. Thus, by defining a set of abstractions about the application and the performance model, such abstractions can be formalized in a tunlet specification using the provided language. Such specification will be automatically translated in a tunlet ready to be used in MATE. Both scalability and transparency of MATE are qualities necessary to make MATE a more useful and user-friendly tool. The proposals and developments presented attempt to provide MATE with such characteristics. Experiments showed the viability of the proposals.
|
2 |
Paralelizações de métodos numéricos em clusters empregando as bibliotecas MPICH, DECK e PthreadPicinin Júnior, Delcino January 2003 (has links)
Este trabalho tem como objetivo desenvolver e empregar técnicas e estruturas de dados agrupadas visando paralelizar os métodos do subespaço de Krylov, fazendo-se uso de diversas ferramentas e abordagens. A partir dos resultados é feita uma análise comparativa de desemvpenho destas ferramentas e abordagens. As paralelizações aqui desenvolvidas foram projetadas para serem executadas em um arquitetura formada por um agregado de máquinas indepentes e multiprocessadas (Cluster), ou seja , são considerados o paralelismo e intra-nodos. Para auxiliar a programação paralela em clusters foram, e estão sendo, desenvolvidas diferentes ferramentas (bibliotecas) que visam a exploração dos dois níveis de paralelismo existentes neste tipo de arquitetura. Neste trabalho emprega-se diferentes bibliotecas de troca de mensagens e de criação de threads para a exploração do paralelismo inter-nodos e intra-nodos. As bibliotecas adotadas são o DECK e o MPICH e a Pthread. Um dos itens a serem analisados nestes trabalho é acomparação do desempenho obtido com essas bibliotecas.O outro item é a análise da influência no desemepnho quando quando tulizadas múltiplas threads no paralelismo em clusters multiprocessados. Os métodos paralelizados nesse trabalho são o Gradiente Conjugação (GC) e o Resíduo Mínmo Generalizado (GMRES), quepodem ser adotados, respectivamente, para solução de sistemas de equações lineares sintéticos positivos e definidos e não simétricas. Tais sistemas surgem da discretização, por exemplo, dos modelos da hidrodinâmica e do transporte de massa que estão sendo desenvolvidos no GMCPAD. A utilização desses métodos é justificada pelo fato de serem métodos iterativos, o que os torna adequados à solução de sistemas de equações esparsas e de grande porte. Na solução desses sistemas através desses métodos iterativos paralelizados faz-se necessário o particionamento do domínio do problema, o qual deve ser feito visando um bom balanceamento de carga e minimização das fronteiras entre os sub-domínios. A estrutura de dados desenvolvida para os métodos paralelizados nesse trabalho permite que eles sejam adotados para solução de sistemas de equações gerados a partir de qualquer tipo de particionamento, pois o formato de armazenamento de dados adotado supre qualquer tipo de dependência de dados. Além disso, nesse trabalho são adotadas duas estratégias de ordenação para as comunicações, estratégias essas que podem ser importantes quando se considera a portabilidade das paralelizações para máquinas interligadas por redes de interconexão com buffer de tamanho insuficiente para evitar a ocorrência de dealock. Os resultados obtidos nessa dissertação contribuem nos trabalhos do GMCPAD, pois as paralelizações são adotadas em aplicações que estão sendo desenvolvidas no grupo.
|
3 |
Paralelizações de métodos numéricos em clusters empregando as bibliotecas MPICH, DECK e PthreadPicinin Júnior, Delcino January 2003 (has links)
Este trabalho tem como objetivo desenvolver e empregar técnicas e estruturas de dados agrupadas visando paralelizar os métodos do subespaço de Krylov, fazendo-se uso de diversas ferramentas e abordagens. A partir dos resultados é feita uma análise comparativa de desemvpenho destas ferramentas e abordagens. As paralelizações aqui desenvolvidas foram projetadas para serem executadas em um arquitetura formada por um agregado de máquinas indepentes e multiprocessadas (Cluster), ou seja , são considerados o paralelismo e intra-nodos. Para auxiliar a programação paralela em clusters foram, e estão sendo, desenvolvidas diferentes ferramentas (bibliotecas) que visam a exploração dos dois níveis de paralelismo existentes neste tipo de arquitetura. Neste trabalho emprega-se diferentes bibliotecas de troca de mensagens e de criação de threads para a exploração do paralelismo inter-nodos e intra-nodos. As bibliotecas adotadas são o DECK e o MPICH e a Pthread. Um dos itens a serem analisados nestes trabalho é acomparação do desempenho obtido com essas bibliotecas.O outro item é a análise da influência no desemepnho quando quando tulizadas múltiplas threads no paralelismo em clusters multiprocessados. Os métodos paralelizados nesse trabalho são o Gradiente Conjugação (GC) e o Resíduo Mínmo Generalizado (GMRES), quepodem ser adotados, respectivamente, para solução de sistemas de equações lineares sintéticos positivos e definidos e não simétricas. Tais sistemas surgem da discretização, por exemplo, dos modelos da hidrodinâmica e do transporte de massa que estão sendo desenvolvidos no GMCPAD. A utilização desses métodos é justificada pelo fato de serem métodos iterativos, o que os torna adequados à solução de sistemas de equações esparsas e de grande porte. Na solução desses sistemas através desses métodos iterativos paralelizados faz-se necessário o particionamento do domínio do problema, o qual deve ser feito visando um bom balanceamento de carga e minimização das fronteiras entre os sub-domínios. A estrutura de dados desenvolvida para os métodos paralelizados nesse trabalho permite que eles sejam adotados para solução de sistemas de equações gerados a partir de qualquer tipo de particionamento, pois o formato de armazenamento de dados adotado supre qualquer tipo de dependência de dados. Além disso, nesse trabalho são adotadas duas estratégias de ordenação para as comunicações, estratégias essas que podem ser importantes quando se considera a portabilidade das paralelizações para máquinas interligadas por redes de interconexão com buffer de tamanho insuficiente para evitar a ocorrência de dealock. Os resultados obtidos nessa dissertação contribuem nos trabalhos do GMCPAD, pois as paralelizações são adotadas em aplicações que estão sendo desenvolvidas no grupo.
|
4 |
Paralelizações de métodos numéricos em clusters empregando as bibliotecas MPICH, DECK e PthreadPicinin Júnior, Delcino January 2003 (has links)
Este trabalho tem como objetivo desenvolver e empregar técnicas e estruturas de dados agrupadas visando paralelizar os métodos do subespaço de Krylov, fazendo-se uso de diversas ferramentas e abordagens. A partir dos resultados é feita uma análise comparativa de desemvpenho destas ferramentas e abordagens. As paralelizações aqui desenvolvidas foram projetadas para serem executadas em um arquitetura formada por um agregado de máquinas indepentes e multiprocessadas (Cluster), ou seja , são considerados o paralelismo e intra-nodos. Para auxiliar a programação paralela em clusters foram, e estão sendo, desenvolvidas diferentes ferramentas (bibliotecas) que visam a exploração dos dois níveis de paralelismo existentes neste tipo de arquitetura. Neste trabalho emprega-se diferentes bibliotecas de troca de mensagens e de criação de threads para a exploração do paralelismo inter-nodos e intra-nodos. As bibliotecas adotadas são o DECK e o MPICH e a Pthread. Um dos itens a serem analisados nestes trabalho é acomparação do desempenho obtido com essas bibliotecas.O outro item é a análise da influência no desemepnho quando quando tulizadas múltiplas threads no paralelismo em clusters multiprocessados. Os métodos paralelizados nesse trabalho são o Gradiente Conjugação (GC) e o Resíduo Mínmo Generalizado (GMRES), quepodem ser adotados, respectivamente, para solução de sistemas de equações lineares sintéticos positivos e definidos e não simétricas. Tais sistemas surgem da discretização, por exemplo, dos modelos da hidrodinâmica e do transporte de massa que estão sendo desenvolvidos no GMCPAD. A utilização desses métodos é justificada pelo fato de serem métodos iterativos, o que os torna adequados à solução de sistemas de equações esparsas e de grande porte. Na solução desses sistemas através desses métodos iterativos paralelizados faz-se necessário o particionamento do domínio do problema, o qual deve ser feito visando um bom balanceamento de carga e minimização das fronteiras entre os sub-domínios. A estrutura de dados desenvolvida para os métodos paralelizados nesse trabalho permite que eles sejam adotados para solução de sistemas de equações gerados a partir de qualquer tipo de particionamento, pois o formato de armazenamento de dados adotado supre qualquer tipo de dependência de dados. Além disso, nesse trabalho são adotadas duas estratégias de ordenação para as comunicações, estratégias essas que podem ser importantes quando se considera a portabilidade das paralelizações para máquinas interligadas por redes de interconexão com buffer de tamanho insuficiente para evitar a ocorrência de dealock. Os resultados obtidos nessa dissertação contribuem nos trabalhos do GMCPAD, pois as paralelizações são adotadas em aplicações que estão sendo desenvolvidas no grupo.
|
5 |
Modelización y Asignación de Tareas para Aplicaciones Paralelas con Flujo Continuo de Datos de EntradaGuirado Fernández, Fernando 20 July 2007 (has links)
Las aplicaciones paralelas que procesan flujos continuos de datos de entrada, denominadas como aplicaciones pipeline, son de gran interés para la comunidad científica. Los principales criterios de rendimiento en el proceso de su optimización son dos: (a) minimizar la latencia, de forma que se obtenga el resultado para un dato de entrada en el menor tiempo posible y (b) conseguir un ratio de datos procesados por unidad de tiempo predeterminado, valor denominado como productividad.La necesidad de procesar una flujo continuo de datos, añade un factor de iteratividad en la ejecución de las tareas, lo cual supone un incremento en la complejidad de su optimización respecto a las aplicaciones que solo procesan un dato de entrada.El objetivo de este trabajo de tesis contribuye en aportar una solución en la optimización de las aplicaciones pipeline. El proceso de optimización está basado en la obtención de una productividad específica en la ejecución de la aplicación. Para realizarllo, se aborda el problema mediante dos estrategias: (a) cuando la aplicacione no tienen la capacidad de alcanzar la productividad requerida, se crea una nueva estructura para el grafo de tareas que lo permita y, (b) en la situación de que le requerimiento de productividad sí sea alcanzable, se definen estrategias de mapping que asignan las tareas a los procesadores asegurando la capacidad de obtener el rendimiento marcado como objetivo. La arquitectura de ejecución escogida en esta tesis está basada en la arquitectura de memoria distribuida, por ser ésta la más utilizada en la actualidad en el cómputo de altas prestaciones.Con respecto a la definición del grafo de tareas, esta tesis desarrolla dos técnicas basadas en la paralelización/replicación de taeras y que minimizan la sobrecarga de las comunicaciones. Ambas técnicas localizan las tareas que actúan como cuello de botella en la obtención del requisito de productividad. Con el conocimiento de su funcionalidad y del tipo de flujo de datos a tratar aplican: (a) paralelismo de datos para disminuir el tiempo de cómputo individual de cada uno de los datos de entrada o (b) replicación de tareas para aumentar la capacidad de procesar, de forma concurrente, más datos del flujo de entrada. En el proceso de mapping, en el que las tareas de la aplicación serán asignadas a los nodos de procesamiento de la arquitectura de ejecución, esta tesis propone dos heurísticas de mapping basadas en el concepto de etapa síncrona y con diferente complejidad. Estas heurísticas reciben el nombre de MPASS (Mapping of Pipeline Applications based on Synchronous Stages) y MPART (Mapping of Pipeline Applications based on Reduced Tree). Ambas heurísticas, poseen los mismos objetivos para la asignación: (a) obtener una productividad prefijada, minimizando el número de nodos de procesamiento o (b) minimizar la latencia, bajo un requisito de productividad a alcanzar y, de nuevo, minimizando el número de nodos de procesamiento.La experimentación se ha realizado utilizando un conjunto de aplicaciones sintéticas que modelan el comportamiento de las aplicaciones pipeline y tres aplicaciones reales de diferentes ámbitos científicos: el compresor de vídeo MPEG2, IVUS (IntraVascular UltraSound), encargada de procesar imágenes medicas para definir la estructura arterial y BASIZ (Bright And Satured Images Zones), que detecta en una secuencia de imágenes, aquellas regiones que captan la atención del ojo humano. Los resultados obtenidos demuestran como las técnicas propuestas son capaces de alcanzar el redimiento marcado como objetivo, proponiendo la estructura más adecuada para el grafo de tareas y mediante el mapping apropiado para las aplicaicones pipeline. / Parallel applications that process an input data stream, called pipeline applications, are currently focussing the interest of scientific comunity. The main issues to deal with in the optimization process of these applications are the following two: (a) to minimize latency, allowing the execution of one data of the input stream in the smallest possible time and, (b) to achieve a specific ratio of data processed per time unit, named as throughput.The necessity of processing an input data stream, adds a characteristic of iterativity in the execution of tasks that increases the complexity of the optimization of these applications compared with this for parallel applications that only process a single input data.The aim of this thesis is to contribute with a solution in the optimization of the pipeline applications. The optimization process is based on the obtention of a specific throguhput for the application during the execution. To do this, we confront the problem with two kind of strategies: (a) when the pipeline application is not able to achieve the throughput requirement, we develop the definition of a new task graph structure that allows it and, (b) in the situation where the required throuhgput is achievable, we define task mapping strategies that assign tasks to processors ensuring the capacity of obtaining the performance objective. The execution architecture selected in this thesis is based on the distributed memory arquitecture, as can be the clusters of workstations, which in the present time are broadly used on high performance computing.Related to the task graph definition issue, this thesis propose two new techniques based on task parallelization/replication and reduce the communications overhead. Both techniques find the bottleneck tasks that don't allow to reach the throughput requirement. With the knowledge of their functionality and the kind of input data stream they apply: (a) data parallelism to minimize the individual computation time of a single input data or, (b) task replication in order to increase the ability of the pipeline application to process concurrently a higher number of input data.In the mapping process, where the tasks of the applications are assigned to the processors on the execution architecture, this thesis proposes two new mapping heuristics based in the synchronous stage concept, with different complexity. These heuristics are named as MPASS (Mapping of Pipeline Applications based on Synchronous Stages) and MPART (Mapping of Pipeline Applications based on Reduced Tree). Both mapping heuristics have the same objectives: (a) to obtain the throughput used as the requirement by minimizing the number of processors and, (b) to minimize the latency, under a throughput requirement to be achieved by minimizing the number of processors to be used too.The experimentation process is carried out using a set of synthetic applications that model the behaviour of the pipeline applications, and with three real applications of different scientific fields: the video mpeg-2 compressor, IVUS (IntraVascular-UltraSound) that process medical images in order to determine the arterial structure and BASIZ (Bright and Satured Images Zones) that detects on a image sequence, the zones that capture the main interest of the human eye. The results show that the proposed techniques are able to reach the target performance, proposing the best suitable task graph structure and the appropriate task mapping for these pipeline applications.
|
6 |
Técnicas para la mejora del join paralelo y del procesamiento de secuencias temporales de datos.Aguilar Saborit, Josep 14 July 2006 (has links)
A continuación se presenta la Tesis doctoral que lleva por título Técnicas para la mejora del join paralelo y del procesamiento de secuencias temporales de datos, llevada a cabo por Josep Aguilar Saborit y dirigida por el profesor Josep.L Larriba-Pey.Los Sistemas Gestores de Bases de Datos (SGBDs) son las herramientas con las que se gestiona la información almacenada en una Base de Datos, ya sea para realizar consultas, actualizaciones o modificaciones. Los SGBDs se han convertido en una importante fuente de investigación y desarrollo encaminada a encontrar nuevas técnicas que hagan de los mismos unas herramientas lo más eficientes posible.Dentro del álgebra relacional, la operación más compleja y costosa de llevar a cabo por un SGBD, es la operación de join. Los métodos más conocidos y extendidos en la literatura para una ejecución rápida y eficaz de esta operación, son: Merge Sort Join, Nested Loop Join, Hash Join. Las dos primeras, para una ejecución eficiente, requieren de un cierto orden en los datos de sus relaciones fuente. Esto implica una ordenación previa o bien el soporte de una estructura auxiliar que de por si mantenga el orden de dichos datos. Por el contrario, la operación Hash Join no precisa de ningún orden sobre las relaciones fuente y utiliza hashing sobre los datos para resolver el join. Hash Join es una de las operaciones más utilizadas por los SGBDs y ha sido un importante foco de investigación con el fin de explotar al máximo sus posibilidades.Esta Tesis presenta cinco ténicas. Cuatro de ellas están destinadas a mejorar el rendimiento de la operación de join en SGBDs paralelos, tanto en configuraciones paralelas con recursos compartidos, como en configuraciones paralelas sin recursos compartidos. La última técnica, y que abarca un denso capítulo de la Tesis, presenta nuevas estructuras para representar de forma eficiente en espacio y tiempo secuencias temporales de datos.Todas las técnicas presentadas han sido publicadas. Los respectivos artículos también se adjuntan al final de esta documentación. Las referencias a dichos artículos se pueden consultar en el último apéndice de la Tesis.
|
7 |
Infra-estrutura de componentes paralelos para aplicações de computação de alto desempenho / Infrastructure of parallel components for applications of computation of high performanceSilva, Jefferson de Carvalho January 2008 (has links)
SILVA, Jefferson de Carvalho. Infra-estrutura de componentes paralelos para aplicações de computação de alto desempenho. 2008. 116 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2008. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-11T17:12:14Z
No. of bitstreams: 1
2008_dis_jcsilva.pdf: 2178874 bytes, checksum: 5bcf83ebb42062e08e5e2782af8986e8 (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-18T14:56:45Z (GMT) No. of bitstreams: 1
2008_dis_jcsilva.pdf: 2178874 bytes, checksum: 5bcf83ebb42062e08e5e2782af8986e8 (MD5) / Made available in DSpace on 2016-07-18T14:56:45Z (GMT). No. of bitstreams: 1
2008_dis_jcsilva.pdf: 2178874 bytes, checksum: 5bcf83ebb42062e08e5e2782af8986e8 (MD5)
Previous issue date: 2008 / The development of new High Performance Computing (HPC) application has demanded a set of tools for reconciling high level of a abstraction with software integration. In particular, we are interested in component-based solutions presented by the scientific community in the last years. Components have been applied to meet new requirements of high performance application such as: interoperability, reusability, maintainability and productivity. Recent approaches for component based development time in HPC context, however, have not reconciled more expressive ways for parallel programming and efficiency. Unfortunately, this issue increases the software development time and gets worse when user have poor knowledge of architectural details of parallel computers and of requirements of applications. Precious time is lost optimizing parallel code, probably with non-portable results, instead of being applied to the solutions of the problem. This dissertation presents the Hash Programming Environment (HPE), a solution based on the # (reads "Hash") Component Model and on the Hash Framework Architecture. HPE defines a set of component kinds for building, deploying and executing parallel programs targeted at clusters of multiprocessors. The Hash Framework Architecture has three loosely coupled modules: the Front-End, the Back-End and the Core. The main contribution of this work is the implementation of the Back-End and the Core. The main contribution of this work is the implementation of the Back-End, since we have an early version of the Front-End and Core, both developed in Java on top of the Eclipse Platform. The Back-End was implemented as a parallel extension of a Mono, an open source component platform based on CLI (Common Language Interface) standard. Once independently done, we bound all the modules together, using web services technology. For evaluating the proposed Back-End, we have developed a small conceptual test application, composed by # components. / A construção de novas aplicações voltadas à Computação de Alto Desempenho (CAD) têm exigido ferramentas que conciliem um alto poder de abstração e integração de software. Dentre as soluções apresentadas pela comunidade científica estamos particularmente interessados naquelas baseadas em tecnologia de componentes. Os componentes têm sido usados para abordar novos requisitos de aplicações de alto desempenho, entre as quais destacamos: interoperabilidade, reusabilidade, manutenibilidade e produtividade. As abordagens das aplicações atuais baseadas em tecnologia de componentes, no entanto, não conseguem abstrair formas mais gerais de paralelismo de maneira eficiente, tornando ainda o processo de desenvolvimento difícil, principalmente se o usuário for leigo no conhecimento das peculiaridades de arquiteturas de computação paralela. Um tempo precioso, o qual deveria ser utilizado para a solução do problema, é perdido na implementação eficiente do código de paralelização. Diante desse contexto, esta dissertação apresenta o HPE (Hash Programming Environment), uma solução baseada no modelo # de componentes paralelos e na arquitetura Hash. O HPE define um conjunto de espécies de componentes responsáveis pela construção, implantação e execução de programas paralelos sobre clusters de multiprocessadores. A arquitetura Hash é constituída de três módulos distintos: o Front-End, o Back-End e o Core. A contribuição principal deste trabalho reside na implementação de um Back-End, como uma plataforma de componentes paralelos que estende o Mono, plataforma de componentes de código aberto baseado no padrão CLI (Common Language Interface). Feito isso, unimos o back-End às implementações já existentes do Front-End e do Core, ambos em java e sobre a plataforma de desenvolvimento Eclipse, através de serviços web (web service). Ao final, apresentaremos um pequeno teste de conceito, construído por um programa paralelo construído a partir de componentes #, segundo as premissas e conceitos apresentados neste trabalho.
|
8 |
Experimentos Computacionais com Implementações de Conjunto por Endereçamento Direto e o Problema de Conjunto Independente Máximo / Computational Experiments with Set Implementations by Direct Addressing and the Maximum Independent Set ProblemSantos, Marcio Costa January 2013 (has links)
SANTOS, M. C. Experimentos Computacionais com Implementações de Conjunto por Endereçamento Direto e o Problema de Conjunto Independente Máximo. 2013. 78 f. Dissertação (Mestrado em Ciência da Computação) - Centro de Ciências, Universidade Federal do Ceará, Fortaleza, 2013. / Submitted by Daniel Eduardo Alencar da Silva (dealencar.silva@gmail.com) on 2015-01-23T19:19:39Z
No. of bitstreams: 1
2013_dis_mcsantos.pdf: 1370695 bytes, checksum: f82fbf8bcae3901a15066e6d39ac2720 (MD5) / Approved for entry into archive by Rocilda Sales(rocilda@ufc.br) on 2015-09-23T16:28:47Z (GMT) No. of bitstreams: 1
2013_dis_mcsantos.pdf: 1370695 bytes, checksum: f82fbf8bcae3901a15066e6d39ac2720 (MD5) / Made available in DSpace on 2015-09-23T16:28:47Z (GMT). No. of bitstreams: 1
2013_dis_mcsantos.pdf: 1370695 bytes, checksum: f82fbf8bcae3901a15066e6d39ac2720 (MD5)
Previous issue date: 2013 / The use of bit vectors is a usual practice for represent sets by direct addressing with the aim of reduce memory consumed and improve efficiency of applications with the use of bit parallel techniques. In this text, we study implementations for represent sets by direct addressed. The basic structure in this implementations is the bit vector. Besides that basic implementation, we implement two variations also. The first one is a stratification of the bit vector, while the second uses a hash table. The operations linked to the implemented structure are include and remove an element and the union and intersection of two sets. Especial attention is given to the use of bit parallel in this condition. The implementation of the different structures in this work use an base interface and a base abstract class, where the operations are defined and the bit parallel is used. An experimental comparative between this structures is carry out using enumerative algorithms for the maximum stable set problem. Two approaches are used in the implementation of the enumerative algorithms for the maximum stable set problem, both using the bit parallel in the representation of the graph and on the operations with subsets of vertices. The first one is a known branch-and-bound algorithm and the second uses the Russian dolls method. In both cases, the use of bit parallel improve efficiency when the lower bounds are calculated based in a clique cover of the vertices. The results of computational experiments are presented as comparison between the two algorithms and as an assessment of the structures implemented. These results show that the algorithm based on the method Russian Dolls is more efficient regarding runtime and the memory consumed. Furthermore, the experimental results also show that the use stratification and hash tables also allow more efficiency in the case of sparse graphs. / A utilização de vetores de bits é prática corrente na representação de conjuntos por endereçamento direto com o intuito de reduzir o espaço de memória necessário e melhorar o desempenho de aplicações com uso de técnicas de paralelismo em bits. Nesta dissertação, examinamos implementações para representação de conjuntos por endereçamento direto. A estrutura básica nessas implementações é o vetor de bits. No entanto, além dessa estrutura básica, implementamos também duas variações. A primeira delas consiste em uma estratificação de vetores de bits, enquanto a segunda emprega uma tabela de dispersão. As operações associadas às estruturas implementadas são a inclusão ou remoção de um elemento do conjunto e a união ou interseção de dois conjuntos. Especial atenção é dada ao uso de paralelismo em bits nessas operações. As implementações das diferentes estruturas nesta dissertação utilizam uma interface e uma implementação abstrata comuns, nas quais as operações são especificadas e o paralelismo em bits é explorado. A diferença entre as implementações está apenas na estrutura utilizada. Uma comparação experimental é realizada entre as diferentes estruturas utilizando algoritmos enumerativos para o problema de conjunto independente máximo. Duas abordagens são utilizadas na implementação de algoritmos enumerativos para o problema de conjunto independente máximo, ambas explorando o potencial de paralelismo em bits na representação do grafo e na operação sobre subconjuntos de vértices. A primeira delas é um algoritmo do tipo {em branch-and-boound} proposto na literatura e a segunda emprega o método das bonecas russas. Em ambos os casos, o uso de paralelismo em bits proporciona ganhos de eficiência quando empregado no cálculo de limites inferiores baseados em cobertura por cliques. Resultados de experimentos computacionais são apresentados como forma de comparação entre os dois algoritmos e como forma de avaliação das estruturas implementadas. Esses resultados permitem concluir que o algoritmo baseado no método das bonecas russas é mais eficiente quanto ao tempo de execução e quanto ao consumo de memória. Além disso, os resultados experimentais mostram também que o uso de estratificação e tabelas de dispersão permitem ainda maior eficiência no caso de grafos com muito vértices e poucas arestas.
|
9 |
ALCSP: um complicador baseado em AspectJ para modularizar a programação concorrente em programas JavaElias Queiroga da Costa Araújo, José 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T16:01:28Z (GMT). No. of bitstreams: 2
arquivo9411_1.pdf: 1518901 bytes, checksum: d645deca05140af7b59c0d3726ee9757 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2011 / Com o advento de processadores multicore, a programação concorrente ganhou importância
e tem se tornado um dos grandes desafios da área de engenharia de software. O
paradigma de programação concorrente, implementado por linguagens de programação
como Java, C, e C++, oferece um nível de expressividade muito baixo, dificultando a sua
utilização. Aliado a isso, o uso de bibliotecas que implementam abstração de concorrência,
requer um esforço de aprendizado adicional, como também produz programas cuja
lógica da regra de negócio está entrelaçada com chamadas para a biblioteca que implementa
concorrência de forma mais abstrata.
O presente trabalho propõe separar o código concorrente daquele usado no desenvolvimento
de código sequencial Java. Todo comportamento concorrente é extraído do
código e torna-se anotações de classe. Tais anotações seguem a sintaxe da linguagem
CSP, uma linguagem formal que foi criada para descrever sistemas concorrentes e distribuídos.
Para prover esta separação, este trabalho sugere um compilador, chamado
AJCSP, o qual reconhece as anotações nas classes Java, gerando código concorrente
utilizando a biblioteca JCSP.
A programação orientada a aspectos foi explorada para instrumentar o programa sequencial
Java com construções concorrentes contidas no código gerado. Para avaliar
o framework proposto, foram utilizadas métricas de separação de preocupações (SoC),
acoplamento, bem como tamanho em cinco sistemas distintos implementados nas diferentes
abordagens de concorrência (java thread, JCSP e AJCSP). A avaliação obtida
demonstrou que, quando utilizado AJCSP, a quantidade de linhas de código do sistema
diminui, assim como a dependência com a biblioteca de concorrência
|
10 |
Máquinas de búsqueda para lecturas y escrituras concurrentes.Bonacic Castro, Carolina Alejandra January 2007 (has links)
No description available.
|
Page generated in 0.0445 seconds