• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 270
  • 52
  • 27
  • 25
  • 19
  • 10
  • 6
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • 5
  • Tagged with
  • 481
  • 481
  • 355
  • 335
  • 188
  • 99
  • 65
  • 64
  • 58
  • 53
  • 53
  • 52
  • 49
  • 49
  • 47
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
231

Complexidade de construção de árvores PQR / Complexity of PQR tree construction

Zanetti, João Paulo Pereira, 1987- 20 August 2018 (has links)
Orientador: João Meidanis / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-20T15:24:54Z (GMT). No. of bitstreams: 1 Zanetti_JoaoPauloPereira_M.pdf: 508253 bytes, checksum: b5fd4d2bfb8ac0b251598b01ca9431e9 (MD5) Previous issue date: 2012 / Resumo: As árvores PQR são estruturas de dados usadas para tratar o problema dos uns consecutivos e problemas relacionados. Aplicações incluem reconhecimento de grafos de intervalos, de grafos planares, e problemas envolvendo moléculas de DNA. A presente dissertação busca consolidar o conhecimento sobre árvores PQR e, principalmente, sua construção incremental, visando fornecer uma base teórica para o uso desta estrutura em aplicações. Este trabalho apresenta uma descrição detalhada do projeto do algoritmo para construção online de árvores PQR, partindo de uma implementação inocente das operações sugeridas e refinando sucessivamente o algoritmo até alcançar a complexidade de tempo quase-linear. Neste projeto, lidamos com um obstáculo que surge com a utilização de estruturas de union-find que não havia sido tratado anteriormente. A demonstração da complexidade de tempo do algoritmo apresentada aqui também é nova e mais clara. Além disso, o projeto é acompanhado de uma implementação em Java dos algoritmos descritos / Abstract: PQR trees are data structures used to solve the consecutive ones problem and other related problems. Applications include interval or planar graph recognition, and problems involving DNA molecules. This dissertation aims at consolidating existing and new knowledge about PQR trees and, primarily, their online construction, thus providing a theoretical basis for the use of this structure in applications. This work presents a detailed description of the online PQR tree construction algorithm's design, starting with a naive implementation of the suggested operations and refining them successively, culminating with an almost-linear time complexity. In this project, we dealt with an obstacle that arises with the use of union-find structures and that has never been addressed before. The proof presented here for the time complexity is also novel and clearer. Furthermore, the project is accompanied by a Java implementation of all the algorithms described / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
232

Extending Modelica with High-Level Data Structures: Design and Implementation in OpenModelica

Björklén, Simon January 2008 (has links)
Modelica is an equation-based object-oriented language (EOO). PELAB at Linköping University along with the OpenModelica development group, is developing a metamodeling extension, MetaModelica, to this language along with a compiler called the OpenModelica Compiler (OMC). The goal of this thesis was to analyze the compiler, extend it with union type support and then write a report about the extension with union types in particular and extension with high level data structures in general, to facilitate further development. The implementation made by this thesis was implemented with the goal of keeping the current structure intact and extending case-clauses where possible. The main parts of the extension is implemented by this thesis work but some parts concerning the pattern matching algorithms are still to be extended. The main goal of this is to bootstrap the OpenModelica Compiler, making it able to compile itself although this is still a goal for the future. With this thesis I also introduce some guidelines for implementing a new highlevel data structure into the compiler and which modules needs extension.
233

Sparse Merkle Trees: Definitions and Space-Time Trade-Offs with Applications for Balloon

Östersjö, Rasmus January 2016 (has links)
This dissertation proposes an efficient representation of a sparse Merkle tree (SMT): an authenticated data structure that supports logarithmic insertion, removal, and look-up in a verifiable manner. The proposal is general in the sense that it can be implemented using a variety of underlying non-authenticated data structures, and it allows trading time for space by the use of an abstract model which represents caching strategies. Both theoretical evaluations and performance results from a proof-of-concept implementation are provided, and the proposed SMT is applied to another authenticated data structure referred to as Balloon. The resulting Balloon has preserved efficiency in the expected case, and is improved with respect to worst case scenarios.
234

Stručná kódování stromů / Succinct encodings of trees

Juraszek, Adam January 2016 (has links)
We focus on space-efficient, namely succinct, representations of static ordinal unlabeled trees. These structures have space complexity which is optimal up to a lower-order term, yet they support a reasonable set of operations in constant time. This topic has been studied in the last 27 years by numerous authors who came with several distinct solutions to this problem. It is not only of an academic interest, the succinct tree data structures has been used in several data-intensive applications, such as XML processing and representation of suffix trees. In this thesis, we describe the current state of knowledge in this area, compare the many different approaches, and propose several either new or alternative algorithms for operations in the representations alongside. Powered by TCPDF (www.tcpdf.org)
235

Data structures for current multi-core and future many-core architectures / Structures de données pour des architectures multi-cœur actuelles et de futures architectures many-cœur

Kanellou, Eleni 14 December 2015 (has links)
Actuellement, la majorité des architectures de processeurs sont fondées sur une mémoire partagée avec cohérence de caches. Des prototypes intégrant de grandes quantités de cœurs, reliés par une infrastructure de transmission de messages, indiquent que, dans un proche avenir, les architectures de processeurs vont probablement avoir ces caractéristiques. Ces deux tendances exigent que les processus s'exécutent en parallèle et rendent la programmation concurrente nécessaire. Cependant, la difficulté inhérente du raisonnement sur la concurrence peut rendre ces nouvelles machines difficiles à programmer. Nous explorons trois approches ayant pour but de faciliter la programmation concurrente. Nous proposons WFR-TM, une approche fondé sur la mémoire transactionnelle (TM), un paradigme de programmation concurrente qui utilise des transactions afin de synchroniser l'accès aux données partagées. Une transaction peut soit terminer (commit), rendant visibles ses modifications, soit échouer (abort), annulant toutes ses modifications. WFR-TM tente de combiner des caractéristiques désirables des TM optimistes et pessimistes. Une TM pessimiste n'échoue jamais aucune transaction; néanmoins les algorithmes existants utilisent des verrous pour exécuter de manière séquentielle les transactions qui contiennent des opérations d'écriture. Les algorithmes TM optimistes exécutent toutes les transactions en parallèle mais les terminent seulement si elles n'ont pas rencontré de conflit au cours de leur exécution. WFR-TM fournit des transactions en lecture seule qui sont wait-free, sans jamais exécuter d'opérations de synchronisation coûteuse (par ex. CAS, LL\SC, etc) ou sacrifier le parallélisme entre les transactions d'écriture. Nous présentons également Dense, une implémentation concurrente de graphe. Les graphes sont des structures de données polyvalentes qui permettent la mise en oeuvre d'une variété d'applications. Cependant, des applications multi-processus qui utilisent des graphes utilisent encore largement des versions séquentielles. Nous introduisons un nouveau modèle de graphes concurrents, permettant l'ajout ou la suppression de n'importe quel arc du graphe, ainsi que la traversée atomique d'une partie (ou de l'intégralité) du graphe. Dense offre la possibilité d'effectuer un snapshot partiel d'un sous-ensemble du graphe défini dynamiquement. Enfin, nous ciblons les futures architectures. Dans l'intérêt de la réutilisation du code il existe depuis quelques temps une tentative d'adaptation des environnements d'exécution de logiciel - comme par ex. JVM, l'environnement d'exécution de Java - initialement prévus pour mémoire partagée, à des machines sans cohérence de caches. Nous étudions des techniques générales pour implémenter des structures de données distribuées en supposant qu'elles vont être utilisées sur des architectures many-core, qui n'offrent qu'une cohérence partielle de caches, voir pas de cohérence du tout. / Though a majority of current processor architectures relies on shared, cache-coherent memory, current prototypes that integrate large amounts of cores, connected through a message-passing substrate, indicate that architectures of the near future may have these characteristics. Either of those tendencies requires that processes execute in parallel, making concurrent programming a necessary tool. The inherent difficulty of reasoning about concurrency, however, may make the new processor architectures hard to program. In order to deal with issues such as this, we explore approaches for providing ease of programmability. We propose WFR-TM, an approach based on transactional memory (TM), which is a concurrent programming paradigm that employs transactions in order to synchronize the access to shared data. A transaction may either commit, making its updates visible, or abort, discarding its updates. WFR-TM combines desirable characteristics of pessimistic and optimistic TM. In a pessimistic TM, no transaction ever aborts; however, in order to achieve that, existing TM algorithms employ locks in order to execute update transactions sequentially, decreasing the degree of achieved parallelism. Optimistic TMs execute all transactions concurrently but commit them only if they have encountered no conflict during their execution. WFR-TM provides read-only transactions that are wait-free, without ever executing expensive synchronization operations (like CAS, LL/SC, etc), or sacrificing the parallelism between update transactions. We further present Dense, a concurrent graph implementation. Graphs are versatile data structures that allow the implementation of a variety of applications. However, multi-process applications that rely on graphs still largely use a sequential implementation. We introduce an innovative concurrent graph model that provides addition and removal of any edge of the graph, as well as atomic traversals of a part (or the entirety) of the graph. Dense achieves wait-freedom by relying on light-weight helping and provides the inbuilt capability of performing a partial snapshot on a dynamically determined subset of the graph. We finally aim at predicted future architectures. In the interest of ode reuse and of a common paradigm, there is recent momentum towards porting software runtime environments, originally intended for shared-memory settings, onto non-cache-coherent machines. JVM, the runtime environment of the high-productivity language Java, is a notable example. Concurrent data structure implementations are important components of the libraries that environments like these incorporate. With the goal of contributing to this effort, we study general techniques for implementing distributed data structures assuming they have to run on many-core architectures that offer either partially cache-coherent memory or no cache coherence at all and present implementations of stacks, queues, and lists.
236

Geometric hierarchies and parallel subdivision search

Dadoun, Nounou Norman January 1990 (has links)
Geometric hierarchies have proven useful for the problems of point location in planar subdivisions and 2- and 3-dimensional convex polytope separation on a sequential model of computation. In this thesis, we formulate a geometric hierarchy paradigm (following the work of Dobkin and Kirkpatrick) and apply this paradigm to solve a number of computational geometry problems on a shared memory (PRAM) parallel model of computation. For certain problems, we describe what we call cooperative algorithms, algorithms which exploit parallelism in searching geometric hierarchies to solve their respective problems. For convex polygons, the geometric hierarchies are implicit and can be exploited in cooperative algorithms to compute convex polygon separation and to construct convex polygon separating/common tangents. The paradigm is also applied to the problem of tree contraction which is, in turn, applied to a number of specialized point location applications including the parallel construction of 2-dimensional Voronoi Diagrams. For point location in planar subdivisions, we present parallel algorithms to construct a subdivision hierarchy representation. A related convex polyhedra hierarchy is constructed similarly and applied to the parallel construction of 3-dimensional convex hulls. The geometric hierarchy paradigm is applied further to the design of a data structure which supports cooperative point location in general planar subdivisions. Again, a related polyhedral hierarchy can be used to exploit parallelism for a cooperative separation algorithm for convex polyhedra. / Science, Faculty of / Computer Science, Department of / Graduate
237

Algorithmes et structures de données en topologie algorithmique / Algorithms and data structures in computational topology

Maria, Clément 28 October 2014 (has links)
La théorie de l'homologie généralise en dimensions supérieures la notion de connectivité dans les graphes. Étant donné un domaine, décrit par un complexe simplicial, elle définit une famille de groupes qui capturent le nombre de composantes connexes, le nombre de trous, le nombre de cavités et le nombre de motifs équivalents en dimensions supérieures. En pratique, l'homologie permet d'analyser des systèmes de données complexes, interprétés comme des nuages de points dans des espaces métriques. La théorie de l'homologie persistante introduit une notion robuste d'homologie pour l'inférence topologique. Son champ d'application est vaste, et comprend notamment la description d'espaces des configurations de systèmes dynamiques complexes, la classification de formes soumises à des déformations et l'apprentissage en imagerie médicale. Dans cette thèse, nous étudions les ramifications algorithmiques de l'homologie persistante. En premier lieu, nous introduisons l'arbre des simplexes, une structure de données efficace pour construire et manipuler des complexes simpliciaux de grandes dimensions. Nous présentons ensuite une implémentation rapide de l'algorithme de cohomologie persistante à l'aide d'une matrice d'annotations compressée. Nous raffinons également l'inférence de topologie en décrivant une notion de torsion en homologie persistante, et nous introduisons la méthode de reconstruction modulaire pour son calcul. Enfin, nous présentons un algorithme de calcul de l'homologie persistante zigzag, qui est une généralisation algébrique de la persistance. Pour cet algorithme, nous introduisons de nouveaux théorèmes de transformations locales en théorie des représentations de carquois, appelés principes du diamant. Ces algorithmes sont tous implémentés dans la librairie de calcul Gudhi. / The theory of homology generalizes the notion of connectivity in graphs to higher dimensions. It defines a family of groups on a domain, described discretely by a simplicial complex that captures the connected components, the holes, the cavities and higher-dimensional equivalents. In practice, the generality and flexibility of homology allows the analysis of complex data, interpreted as point clouds in metric spaces. The theory of persistent homology introduces a robust notion of homology for topology inference. Its applications are various and range from the description of high dimensional configuration spaces of complex dynamical systems, classification of shapes under deformations and learning in medical imaging. In this thesis, we explore the algorithmic ramifications of persistent homology. We first introduce the simplex tree, an efficient data structure to construct and maintain high dimensional simplicial complexes. We then present a fast implementation of persistent cohomology via the compressed annotation matrix data structure. We also refine the computation of persistence by describing ideas of homological torsion in this framework, and introduce the modular reconstruction method for computation. Finally, we present an algorithm to compute zigzag persistent homology, an algebraic generalization of persistence. To do so, we introduce new local transformation theorems in quiver representation theory, called diamond principles. All algorithms are implemented in the computational library Gudhi.
238

Die ondersteuning van abstrakte datatipes en toestelle in 'n programmeertaal

Olivier, Martin Stephanus 27 March 2014 (has links)
M.Sc. (Computer Science) / Please refer to full text to view abstract
239

Estruturas de dados topológicas aplicadas em simulações de escoamentos compressíveis utilizando volumes finitos e métodos de alta ordem / Topologic data structures applied on compressible flows simulations using finite volume and high-order methods

Fernanda Paula Barbosa 18 December 2012 (has links)
A representação de malhas por meio de estrutura de dados e operadores topológicos e um dos focos principais da modelagem geométrica, onde permite uma implementação robusta e eficiente de mecanismos de refinamento adaptativo, alinhamento de células e acesso as relações de incidência e adjacência entre os elementos da malha, o que é de grande importância na maioria das aplicações em mecânica dos fluidos. No caso de malhas não estruturadas, a não uniformidade da decomposição celular e melhor representada por uma estrategia mais sofisticada, que são as estruturas de dados topológicas. As estruturas de dados topológicas indexam elementos de uma malha representando relações de incidência e adjacência entre elementos, garantindo acesso rápido às informações. Um dos aspectos mais comuns aos problemas tratados pela mecânica dos fluidos computacional é a complexidade da geometria do domínio onde ocorre o escoamento. O uso de estruturas de dados para manipular malhas computacionais e de grande importância pois realiza de modo eficiente as consultas às informações da malha e centraliza todas as operações sobre a malha em um único módulo, possibilitando sua extensão e adaptação em diversas situações. Este trabalho visou explorar o acoplamento de uma estrutura de dados topológica, a Mate Face, em um módulo simulador existente, de modo a gerenciar todos os acessos à malha e dispor operações e iteradores para pesquisas complexas nas vizinhanças de cada elemento na malha. O módulo simulador resolve as equações governantes da mecânica dos fluidos através da técnica de volumes finitos. Foi utilizada uma formulação que atribui os valores das propriedades aos centroides dos volumes de controle, utiliza métodos de alta ordem, os esquemas ENO e WENO, que tem a finalidade de capturar com eficiência descontinuidades presentes em problemas governados por equações diferenciais parciais hiperbólicas. As equações de Euler em duas dimensões representam os escoamentos de interesse no presente trabalho. O acoplamento da estrutura de dados Mate Face ao simulador foi realizada através da criação de uma biblioteca desenvolvida que atua como uma interface de comunicação entre os dois módulos, a estrutura de dados e o simulador, que foram implementados em diferentes linguagens de programação. Deste modo, todas as funcionalidades existentes na Mate Face tornaram-se acessíveis ao simulador na forma de procedimentos. Um estudo sobre malhas dinâmicas foi realizado envolvendo o método das molas para movimentação de malhas simulando-se operações de arfagem. A idéia foi verificar a aplicabilidade deste método para auxiliar simulações de escoamentos não estacionarios. Uma outra vertente do trabalho foi estender a estrutura Mate Face de forma a representar elementos não suportados a priori, de modo a flexibilizar o seu uso em simulações de escoamentos baseados no método de volumes finitos espectrais. O método dos volumes espectrais e utilizado para se obter alta resolução espacial do domínio computacional, que também atribui valores das propriedades aos centroides dos volumes de controle, porém, os volumes de controle são particionados em volumes menores de variadas topologias. Assim, uma extensão da Mate Face foi desenvolvida para representar a nova malha para a aplicação do método, representando-se cada particionamento localmente em cada volume espectral. Para todas as etapas deste trabalho, realizaram-se experimentos que validaram a utilizaação da estrutura de dados Mate Face junto a métodos numéricos. Desta forma, a estrutura pode auxiliar as ferramentas de simulações de escoamentos de fluidos no gerenciamento e acesso à malha computacional / The storage and access of grid files by data structures and topologic operators is one of the most important goals of geometric modeling research field, which allows an efficient and stable implementation of adaptive refinement mechanisms, cells alignment and access to incidence and adjacency properties from grid elements, representing great concernment in the majority of applications from fluid mechanics. In the case of non-structured grids, the cellular decomposition if non-uniform and is better suited by a more sophisticated strategy - the topologic data structs. The topologic data structs index grid elements representing incidence and adjacency properties from grid elements, ensuring quick access to information. One of most common aspects from problems solved by computational fluid mechanic is the complexity of the domain geometry where the fluid ows. The usage of data structures to manipulate computational grids is of great importance because it performs efficiently queries on grid information and centers all operations to the grid on a unique module, allowing its extension and flexible usage on many problems. This work aims at exploring the coupling of a topologic data structure, the Mate Face, on a solver module, by controlling all grid access providing operators and iterators that perform complex neighbor queries at each grid element. The solver module solves the governing equations from fluid mechanics though the finite volume technique with a formulation that sets the property values to the control volume centroids, using high order methods - the ENO and WENO schemes, which have the purpose of efficiently capture the discontinuities appearing in problems governed by hyperbolic conservation laws. The two dimensional Euler equations are considered to represent the flows of interest. The coupling of the Mate Face data structure to the solver module was achieved by a creation of a library that acts as an interface layer between both modules, the Mate Face and the solver, which had been implemented using different programming languages. Therefore, all Mate Face class methods are available to the solver module though the interface library in the form of procedures. A study of dynamic grids was made by using spring methods for the moving grid under pitch movement case. The goal was to analyze the applicability of such method to aid non stationary simulations. Another contribution of this work was to show how the Mate Face can be extended in order to deal with non-supported types of elements, allowing it to aid numeric simulations using the spectral finite volume method. The spectral nite volume method is used to obtain high spatial resolution, also by setting the property values to the control volume centroids, but here the control volumes are partitioned into smaller volumes of different types, from triangles to hexagons. Then, an extension of the Mate Face was developed in order to hold the new generated grid by the partitioning specfied by the spectral finite volume method. The extension of Mate Face represents all partitioned elements locally for each original control volume. For all implementations and proposals from this work, experiments were performed to validate the usage of the Mate Face along with numeric methods. Finally, the data structure can aid the fluid flow simulation tools by managing the grid file and providing efficient query operators
240

Synchronization costs in parallel programs and concurrent data structures / Coûts de synchronization dans les programmes parallèlles et les structures de données simultanées

Aksenov, Vitalii 26 September 2018 (has links)
Pour utiliser la puissance de calcul des ordinateurs modernes, nous devons écrire des programmes concurrents. L’écriture de programme concurrent efficace est notoirement difficile, principalement en raison de la nécessité de gérer les coûts de synchronisation. Dans cette thèse, nous nous concentrons sur les coûts de synchronisation dans les programmes parallèles et les structures de données concurrentes.D’abord, nous présentons une nouvelle technique de contrôle de la granularité pour les programmes parallèles conçus pour un environnement de multi-threading dynamique. Ensuite, dans le contexte des structures de données concurrentes, nous considérons la notion d’optimalité de concurrence (concurrency-optimality) et proposons la première implémentation concurrence-optimal d’un arbre binaire de recherche qui, intuitivement, accepte un ordonnancement concurrent si et seulement si l’ordonnancement est correct. Nous proposons aussi la combinaison parallèle (parallel combining), une technique qui permet l’implémentation efficace des structures de données concurrences à partir de leur version parallèle par lots. Nous validons les techniques proposées par une évaluation expérimentale, qui montre des performances supérieures ou comparables à celles des algorithmes de l’état de l’art.Dans une perspective plus formelle, nous considérons le phénomène d’assistance (helping) dans des structures de données concurrentes. On observe un phénomène d’assistance quand l’ordre d’une opération d’un processus dans une trace linéarisée est fixée par une étape d’un autre processus. Nous montrons qu’aucune implémentation sans attente (wait-free) linéarisable d’une pile utilisant les primitives read, write, compare&swap et fetch&add ne peut être “sans assistance” (help-free), corrigeant une erreur dans une preuve antérieure de Censor-Hillel et al. Finalement, nous proposons une façon simple de prédire analytiquement le débit (throughput) des structures de données basées sur des verrous à gros grains. / To use the computational power of modern computing machines, we have to deal with concurrent programs. Writing efficient concurrent programs is notoriously difficult, primarily due to the need of harnessing synchronization costs. In this thesis, we focus on synchronization costs in parallel programs and concurrent data structures.First, we present a novel granularity control technique for parallel programs designed for the dynamic multithreading environment. Then in the context of concurrent data structures, we consider the notion of concurrency-optimality and propose the first implementation of a concurrency-optimal binary search tree that, intuitively, accepts a concurrent schedule if and only if the schedule is correct. Also, we propose parallel combining, a technique that enables efficient implementations of concurrent data structures from their parallel batched counterparts. We validate the proposed techniques via experimental evaluations showing superior or comparable performance with respect to state-of-the-art algorithms.From a more formal perspective, we consider the phenomenon of helping in concurrent data structures. Intuitively, helping is observed when the order of some operation in a linearization is fixed by a step of another process. We show that no wait-free linearizable implementation of stack using read, write, compare&swap and fetch&add primitives can be help-free, correcting a mistake in an earlier proof by Censor-Hillel et al. Finally, we propose a simple way to analytically predict the throughput of data structures based on coarse-grained locking

Page generated in 0.0697 seconds