Spelling suggestions: "subject:"arallel programming"" "subject:"arallel erogramming""
231 |
RTI for support for real-time simulation /Bleichman, Dan, January 1900 (has links)
Thesis (M.App.Sc.) - Carleton University, 2007. / Includes bibliographical references (p. 86-90). Also available in electronic format on the Internet.
|
232 |
An Occam2 implementation of Prolog /Motwani, Manjula H. January 1994 (has links)
Thesis (M.S.)--Rochester Institute of Technology, 1994. / Typescript. Includes bibliographical references (leaf 217).
|
233 |
Operational semantics for PLEX : a basis for safe parallelization /Lindhult, Johan. January 2008 (has links)
Lic.-avh. Västerås : Mälardalens högskola, 2008. / S. 75-79: Bibliografi.
|
234 |
Automatic empirical techniques for developing efficient MPI collective communication routinesFaraj, Ahmad A., Yuan, Xin. January 2006 (has links)
Thesis (Ph. D.)--Florida State University, 2006. / Advisor: Xin Yuan, Florida State University, College of Arts and Sciences, Dept. of Computer Science. Title and description from dissertation home page (viewed Sept. 19, 2006). Document formatted into pages; contains xiii, 162 pages. Includes bibliographical references.
|
235 |
Accelerating digital forensic searching through GPGPU parallel processing techniquesBayne, Ethan January 2017 (has links)
Background: String searching within a large corpus of data is a critical component of digital forensic (DF) analysis techniques such as file carving. The continuing increase in capacity of consumer storage devices requires similar improvements to the performance of string searching techniques employed by DF tools used to analyse forensic data. As string searching is a trivially-parallelisable problem, general purpose graphic processing unit (GPGPU) approaches are a natural fit. Currently, only some of the research in employing GPGPU programming has been transferred to the field of DF, of which, a closed-source GPGPU framework was used— Complete Unified Device Architecture (CUDA). Findings from these earlier studies have found that local storage devices from which forensic data are read present an insurmountable performance bottleneck. Aim: This research hypothesises that modern storage devices no longer present a performance bottleneck to the currently used processing techniques of the field, and proposes that an open-standards GPGPU framework solution – Open Computing Language (OpenCL) – would be better suited to accelerate file carving with wider compatibility across an array of modern GPGPU hardware. This research further hypothesises that a modern multi-string searching algorithm may be better adapted to fulfil the requirements of DF investigation. Methods: This research presents a review of existing research and tools used to perform file carving and acknowledges related work within the field. To test the hypothesis, parallel file carving software was created using C# and OpenCL, employing both a traditional string searching algorithm and a modern multi-string searching algorithm to conduct an analysis of forensic data. A set of case studies that demonstrate and evaluate potential benefits of adopting various methods in conducting string searching on forensic data are given. This research concludes with a final case study which evaluates the performance to perform file carving with the best-proposed string searching solution and compares the result with an existing file carving tool— Foremost. Results: The results demonstrated from the research establish that utilising the parallelised OpenCL and Parallel Failureless Aho-Corasick (PFAC) algorithm solution demonstrates significantly greater processing improvements from the use of a single, and multiple, GPUs on modern hardware. In comparison to CPU approaches, GPGPU processing models were observed to minimised the amount of time required to search for greater amounts of patterns. Results also showed that employing PFAC also delivers significant performance increases over the BM algorithm. The method employed to read data from storage devices was also seen to have a significant effect on the time required to perform string searching and file carving. Conclusions: Empirical testing shows that the proposed string searching method is believed to be more efficient than the widely-adopted Boyer-Moore algorithms when applied to string searching and performing file carving. The developed OpenCL GPGPU processing framework was found to be more efficient than CPU counterparts when searching for greater amounts of patterns within data. This research also refutes claims that file carving is solely limited by the performance of the storage device, and presents compelling evidence that performance is bound by the combination of the performance of the storage device and processing technique employed.
|
236 |
Escalonamento Work-Stealing de programas Divisão-e-Conquista com MPI-2 / Scheduling Divide-and-Conquer programs by Work-Stealing with MPI-2Pezzi, 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.
|
237 |
Escalonamento Work-Stealing de programas Divisão-e-Conquista com MPI-2 / Scheduling Divide-and-Conquer programs by Work-Stealing with MPI-2Pezzi, 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.
|
238 |
Avaliação de Desempenho de uma Plataforma de Componentes Paralelos / Performance Evaluation of a Platform for Component-Based Parallel ProgrammingRezende, Cenez Araújo de January 2011 (has links)
REZENDE, Cenez Araújo de. Avaliação de Desempenho de uma Plataforma de Componentes Paralelos. 2011. 149 f. : Dissertação (mestrado) - Universidade Federal do Ceará, Centro de Ciências, Departamento de Computação, Fortaleza-CE, 2011. / Submitted by guaracy araujo (guaraa3355@gmail.com) on 2016-06-14T17:45:49Z
No. of bitstreams: 1
2011_dis_carezende.pdf: 2377491 bytes, checksum: b262a08dab641ffaa0637237fb5c2a0f (MD5) / Approved for entry into archive by guaracy araujo (guaraa3355@gmail.com) on 2016-06-14T17:46:36Z (GMT) No. of bitstreams: 1
2011_dis_carezende.pdf: 2377491 bytes, checksum: b262a08dab641ffaa0637237fb5c2a0f (MD5) / Made available in DSpace on 2016-06-14T17:46:36Z (GMT). No. of bitstreams: 1
2011_dis_carezende.pdf: 2377491 bytes, checksum: b262a08dab641ffaa0637237fb5c2a0f (MD5)
Previous issue date: 2011 / In order to deal with programming-in-the-large requirements in emerging applications of High Performance Computing (HPC), it is still necessary the development of new software development tools for reconciling high level of abstraction, expressiveness and high performance. The technologies behind CBHPC (Component-Based High Performance Computing) target these requirements, looking for reuse of software parts, interoperability across execution platforms, high development productivity and easy maintenance. However, to reconcile high level of abstraction, high performance and high expressiveness for parallel programming models and patterns when building HPC applications is not trivial. For this reason, most of the current technologies fail in this context, since they adopt the traditional process-oriented perspective in the architecture of parallel programs. The HPE platform (Hash Programming Environment) sits on top of the Hash component model to support general forms of parallelism, by combining high expressiveness with high level of abstraction. The Hash component model proposes a concern-oriented perspective to parallel programming, in alternative to the traditional process-oriented approach. In this context, this dissertation is about the efficacy and efficiency of HPE for HPC applications, also validating some of its parallel programming techniques based on components. For that, a set of programs from NPB (NAS Parallel Benchmarks), a widely disseminated collection of benchmarks for evaluating the performance of parallel computing platforms, written in Fortran, C and Java, have been refactored into components aimed at the HPE platform. In such refactoring, the original structure of the benchmarks has been preserved, with minimal changes in the code that declare and initialize data structures, as well as those that describe computations and communication patterns. Using the component-based versions of the benchmarks, a systematic performance evaluation has been performed for quantifying the overheads caused strictly by the component-based structure. / Reduzir a complexidade do software e permitir o desenvolvimento em larga escala de aplicações voltados à Computação de Alto Desempenho (CAD) tem exigido o desenvolvimento de ferramentas com potencial capacidade de abstração na construção de sistemas. As tecnologias que envolvem o desenvolvimento de componentes procuram alcançar esses requisitos, buscando oferecer suporte a reuso, interoperabilidade, produtividade e maior flexibilidade de manutenção e desenvolvimento de aplicações de alto desempenho. No entanto, conciliar alto poder de abstração com alto poder de expressividade na construção de componentes de aplicações não é algo trivial, o que as atuais tecnologias não têm conseguido solucionar, uma vez que adotam as tradicionais formas de paralelismo por processos. Diante disso, a plataforma HPE (Hash Programming Environment), baseada no modelo de componentes Hash, tem buscado suportar formas mais gerais de paralelismo, conciliando expressividade com alto poder de abstração, uma vez que o modelo Hash é baseado em interesses de software e não em processo, como é feito tradicionalmente. Nesse contexto, esta dissertação busca explorar os recursos do HPE, certificando-se de sua viabilidade no contexto de aplicações de alto desempenho e validando suas técnicas de programação paralela baseadas em componentes. Isso tem resultado em um processo de construção de aplicações científicas sob a abordagem de componentes, tendo como base o conjunto de aplicativos NPB (Nas Parallel Benchmarks), o qual passa por um processo rigoroso de conversão para ser suportado pelo HPE. No processo de conversão e refatoração em componentes, busca-se conservar as estruturas originais do NPB, sem alterações significativas nos códigos que declaram e inicializam as estruturas de dados, bem como os que descrevem computações, topologia de processos e comunicação entre os processos. Para validação da plataforma, uma avaliação sistemática de desempenho é feita, tendo como princípio isolar e mensurar o peso ou o efeito da refatoração do NPB em componentes do modelo Hash.
|
239 |
Avaliação de desempenho de uma plataforma de componentes paralelos / Performance evaluation of a platform for component-based parallel programmingRezende, Cenez Araújo de January 2011 (has links)
REZENDE, Cenez Araújo de. Avaliação de desempenho de uma plataforma de componentes paralelos. 2011. 156 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2011. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-11T12:23:28Z
No. of bitstreams: 1
2011_dis_carezende.pdf: 2377491 bytes, checksum: b262a08dab641ffaa0637237fb5c2a0f (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-14T15:51:55Z (GMT) No. of bitstreams: 1
2011_dis_carezende.pdf: 2377491 bytes, checksum: b262a08dab641ffaa0637237fb5c2a0f (MD5) / Made available in DSpace on 2016-07-14T15:51:55Z (GMT). No. of bitstreams: 1
2011_dis_carezende.pdf: 2377491 bytes, checksum: b262a08dab641ffaa0637237fb5c2a0f (MD5)
Previous issue date: 2011 / In order to deal with programming-in-the-large requirements in emerging applications of High Performance Computing (HPC), it is still necessary the development of new software development tools for reconciling high level of abstraction, expressiveness and high performance. The technologies behind CBHPC (Component-Based High Performance Computing) target these requirements, looking for reuse of software parts, interoperability across execution platforms, high development productivity and easy maintenance. However, to reconcile high level of abstraction, high performance and high expressiveness for parallel programming models and patterns when building HPC applications is not trivial. For this reason, most of the current technologies fail in this context, since they adopt the traditional process-oriented perspective in the architecture of parallel programs. The HPE platform (Hash Programming Environment) sits on top of the Hash component model to support general forms of parallelism, by combining high expressiveness with high level of abstraction. The Hash component model proposes a concern-oriented perspective to parallel programming, in alternative to the traditional process-oriented approach. In this context, this dissertation is about the efficacy and efficiency of HPE for HPC applications, also validating some of its parallel programming techniques based on components. For that, a set of programs from NPB (NAS Parallel Benchmarks), a widely disseminated collection of benchmarks for evaluating the performance of parallel computing platforms, written in Fortran, C and Java, have been refactored into components aimed at the HPE platform. In such refactoring, the original structure of the benchmarks has been preserved, with minimal changes in the code that declare and initialize data structures, as well as those that describe computations and communication patterns. Using the component-based versions of the benchmarks, a systematic performance evaluation has been performed for quantifying the overheads caused strictly by the component-based structure. / Reduzir a complexidade do software e permitir o desenvolvimento em larga escala de aplicações voltados à Computação de Alto Desempenho (CAD) tem exigido o desenvolvimento de ferramentas com potencial capacidade de abstração na construção de sistemas. As tecnologias que envolvem o desenvolvimento de componentes procuram alcançar esses requisitos, buscando oferecer suporte a reuso, interoperabilidade, produtividade e maior flexibilidade de manutenção e desenvolvimento de aplicações de alto desempenho. No entanto, conciliar alto poder de abstração com alto poder de expressividade na construção de componentes de aplicações não é algo trivial, o que as atuais tecnologias não têm conseguido solucionar, uma vez que adotam as tradicionais formas de paralelismo por processos. Diante disso, a plataforma HPE (Hash Programming Environment), baseada no modelo de componentes Hash, tem buscado suportar formas mais gerais de paralelismo, conciliando expressividade com alto poder de abstração, uma vez que o modelo Hash é baseado em interesses de software e não em processo, como é feito tradicionalmente. Nesse contexto, esta dissertação busca explorar os recursos do HPE, certificando-se de sua viabilidade no contexto de aplicações de alto desempenho e validando suas técnicas de programação paralela baseadas em componentes. Isso tem resultado em um processo de construção de aplicações científicas sob a abordagem de componentes, tendo como base o conjunto de aplicativos NPB (Nas Parallel Benchmarks), o qual passa por um processo rigoroso de conversão para ser suportado pelo HPE. No processo de conversão e refatoração em componentes, busca-se conservar as estruturas originais do NPB, sem alterações significativas nos códigos que declaram e inicializam as estruturas de dados, bem como os que descrevem computações, topologia de processos e comunicação entre os processos. Para validação da plataforma, uma avaliação sistemática de desempenho é feita, tendo como princípio isolar e mensurar o peso ou o efeito da refatoração do NPB em componentes do modelo Hash.
|
240 |
Yali : uma extensão do modelo linda para programação paralela em redes heterogêneas / Yali, an extension to the linda model intended for parallel programming in heterogeneous computer networksCharao, Andrea Schwertner January 1996 (has links)
Com a disponibilidade de redes que ligam estações cada vez mais poderosas a baixos custos, o interesse em torno de ferramentas que suportam a programação paralela em arquiteturas deste tipo tem aumentado significativamente. Esta dissertação trata do projeto e implementação de YALI (Yet Another Linda Implementation), uma ferramenta destinada ao desenvolvimento e execução de programas paralelos em redes heterogêneas de computadores. Com o objetivo de oferecer uma interface simples e flexível para os usuários programadores, YALI baseia-se no modelo Linda[GEL85], que destaca-se por utilizar uma abstração de alto nível para a cooperação entre processos. Em Linda, processos interagem por intermédio de uma memória associativa logicamente compartilhada, denominada Espaço de Tuplas. Entre outras vantagens deste modelo pode-se citar a simplicidade de suas primitivas e a possibilidade de incorporá-las a uma linguagem seqüencial conhecida, o que contribui fortemente para sua fácil assimilação, mesmo por usuários com pouca experiência em programação paralela. Após uma descrição detalhada do modelo Linda, este trabalho discute varias questões envolvidas no projeto e implementação de sistemas nele baseados. Para oferecer uma visão pratica das soluções mais freqüentemente adotadas para estas questões, quatro sistemas que implementam o modelo para programação paralela em redes são apresentados e avaliados. São eles: Glenda, uma implementacao do modelo baseada na ferramenta PVM (Parallel Virtual Machine); POSYBL (PrOgramming SYstem for distriButed appLications), um sistema construído através de recursos de sistemas operacionais compatíveis com Unix; p4-Linda, construído a partir da ferramenta de programação paralela p4 e, por fim, Network-Linda, uma implementação comercial do modelo. Depois do estudo dos quatro sistemas acima, o projeto de YALI e discutido detalhadamente. Decidiu-se, inicialmente, que YALI deveria incorporar o modelo Linda a linguagem C, que é largamente utilizada no desenvolvimento de programas de propósito geral. Além disso, optou-se por estender o modelo com algumas novas primitivas, de modo a oferecer maior poder de expressão ao usuário. Basicamente, as primitivas que YALI acrescenta ao modelo servem para dar suporte a operações globais e a criação dinâmica de threads. Operações globais servem para expressar a comunicação e a sincronização entre múltiplos processos, sendo utilizadas com bastante freqüência em vários tipos de programas paralelos. YALI suporta operações globais de maneira totalmente ortogonal ao modelo Linda, garantindo melhor desempenho sem afetar o nível de abstração oferecido. o suporte a criação dinâmica de threads, por outro lado, tem o objetivo de permitir a exploração de um paralelismo de granularidade fina, adequado ate mesmo a execução de rotinas simples em paralelo. Para suportar o desenvolvimento e execução de aplicações paralelas, YALI e implementado através de três componentes distintos. O primeiro e um pré-processador, que garante uma interface simplificada com o usuário. 0 segundo e uma biblioteca, que contem as rotinas de suporte as primitivas YALI e deve ser ligada aos programas de usuários. O terceiro componente, por fim, e um utilitário destinado a controlar a inicialização e o termino de aplicações paralelas, que baseia-se em uma configuração estabelecida pelo usuário para distribuir processos sobre uma rede de computadores. Ao contrário da maioria dos sistemas baseados em Linda, YALI implementa um espaço de tuplas distribuído entre os processos que compõem uma aplicação paralela, dispensando o use de processos especializados no gerenciamento de tuplas. Para isso, YALI utiliza múltiplas threads em cada processo definido pelo usuário, e distribui tuplas sobre estes processos através de um mecanismo baseado em hashing. A implementação de YALI leva em conta a heterogeneidade inerente a ambientes de rede, permitindo que maquinas com diferentes arquiteturas e sistemas operacionais sejam utilizadas na execução de programas paralelos. Por fim, YALI é totalmente implementado a partir de recursos presentes em sistemas compatíveis com Unix, de modo a aumentar sua portabilidade e garantir sua eficiência. / With the availability of networks connecting powerful workstations at a low cost, increasing interest has been devoted to systems that support parallel programming in such architectures. This document describes the design and implementation of YALI (Yet Another Linda Implementation), a tool that allows the development and execution of parallel programs in heterogeneous computer networks. Aiming to provide a simple and flexible interface for its users, YALI is based on the Linda parallel programming model[GEL85], that outstands in providing a high level abstraction for cooperation between processes. In Linda, communication and synchronization take place through an associative, logically shared memory called Tuple Space. Among the advantages of this model, one can mention the simplicity of its primitives, and the possibility of incorporate them in a well-known sequential language. These characteristics make Linda easy to learn, even to users with little experience in parallel programming. After a detailed description of the Linda model, this document discusses some design and implementation issues related to Linda-based systems. In order to provide a practical view of some usual solutions to address these issues, four Linda-based systems are presented and evaluated. These systems are: Glenda, an implementation of Linda built on top of PVM (Parallel Virtual Machine); POSYBL (PrOgramming SYstem for distriButed appLications), that relies on features provided by Unix-like operating systems to implement the model; p4-Linda, built on top of p4 parallel programming tool and, at last, Network-Linda, a comercial product based on Linda. All these systems, as YALI, are specially tailored to parallel programming in computer networks. Following the study of the four systems, this documents presents the design of the YALI system. One of the first design decisions was to incorporate the Linda primitives to the C language, that is broadly used as a general purpose programming language. In addition, a set of new primitives was designed as an extension to the original model, in order to increase YALI's expressivenes. Basically, the new primitives support global operations and dynamic thread creation. Global operations are useful to express communication and synchronization among multiple processes, and are frequently used many classes of parallel programs. YALI gives support to global operations in a way that is totally ortoghonal to the Linda model, ensuring better performance without affecting the abstraction level inherent to Linda-based systems. The support to dynamic thread creation, on the other hand, is helpful to explore lightweight parallelism, which allows the execution of simple routines in parallel. To support the development and execution of parallel applications, YALI is made up of three distinct components. The first is a pre-processor, that provides a simple user interface. The second is a library, that must be linked to the user programs since it's where YALI primitives are actuall y implemented. Finally, the third component is an utility that controls initialization and termination of parallel applications, which takes configuration parameters from the user to distribute processes over a newtork. In contrast with most Linda-based systems, YALI relies on a tuple space that is distributed among the processes in the same parallel application, so that intermediate tuple managers are not necessary To implement that, multiple threads are embedded in each user process, and tuples are spread over the processes in the basis of a hashing mechanism. YALI's implementation takes in account the inherent heterogeneity of network environments, allowing machines with different architectures and operating systems to be used in the execution of parallel programs. Finally, YALI is build on top of common features of Unix-like operating systems, in order to increase its efficiency and portability.
|
Page generated in 0.0752 seconds