23 research outputs found
Virtual Runtime Application Partitions for Resource Management in Massively Parallel Architectures
This thesis presents a novel design paradigm, called Virtual Runtime Application Partitions (VRAP), to judiciously utilize the on-chip resources. As the dark silicon era approaches, where the power considerations will allow only a fraction chip to be powered on, judicious resource management will become a key consideration in future designs. Most of the works on resource management treat only the physical components (i.e. computation, communication, and memory blocks) as resources and manipulate the component to application mapping to optimize various parameters (e.g. energy efficiency). To further enhance the optimization potential, in addition to the physical resources we propose to manipulate abstract resources (i.e. voltage/frequency operating point, the fault-tolerance strength, the degree of parallelism, and the configuration architecture). The proposed framework (i.e. VRAP) encapsulates methods, algorithms, and hardware blocks to provide each application with the abstract resources tailored to its needs. To test the efficacy of this concept, we have developed three distinct self adaptive environments: (i) Private Operating Environment (POE), (ii) Private Reliability Environment (PRE), and (iii) Private Configuration Environment (PCE) that collectively ensure that each application meets its deadlines using minimal platform resources. In this work several novel architectural enhancements, algorithms and policies are presented to realize the virtual runtime application partitions efficiently. Considering the future design trends, we have chosen Coarse Grained Reconfigurable Architectures (CGRAs) and Network on Chips (NoCs) to test the feasibility of our approach. Specifically, we have chosen Dynamically Reconfigurable Resource Array (DRRA) and McNoC as the representative CGRA and NoC platforms. The proposed techniques are compared and evaluated using a variety of quantitative experiments. Synthesis and simulation results demonstrate VRAP significantly enhances the energy and power efficiency compared to state of the art.Siirretty Doriast
Boolean satisfiability solvers: techniques, implementations and analysis
This paper presents an overview of the most common techniques employed for solving the SAT problem. Such techniques have allowed the SAT solvers to be reliable enough in order to solve both random and practical instances. Another point focused in this paper is the applicability of Reconfigurable Systems in order to accelerate the SAT solving process. An emphasis to HW/SW based solutions will be done and an analysis of those systems will be done. This solution is widely used today, allowing a system to take advantage from both the high speed personal computer and, at the same time, parallelism and flexibility provided by reconfigurable systems
Satisfação booleana: algoritmos, aplicações, implementações
This paper presents the detailed description of the Boolean satisfiability (SAT) problem and considers the complete discrete algorithms that are commonly employed in its solution. It is demonstrated that SAT has numerous practical applications. Thus the design and implementation of efficient algorithms is of great importance today. Finally, various realizations of SAT solvers based on reconfigurable hardware are analyzed and compared.Neste artigo considera-se em detalhe o problema de satisfação booleana (SAT) e descrevem-se os algoritmos discretos completos que são normalmente utilizados para a sua solução. É mostrado que SAT tem inúmeras aplicações práticas. Portanto, o desenvolvimento e a implementação de algoritmos eficientes assumem actualmente grande importância. Finalmente, são analisadas várias realizações de algoritmos baseadas em hardware reconfigurável e é comparado o seu desempenho
Introdução à computação reconfigurável
With the advent of new types of programmable logic devices (PLDs), the process of digital system design has undergone a notable revision during the past few decades. Actually, many digital systems are implemented with the aidof high-capacity PLDs (FPGAs, in particular). The FPGA market continues to grow resulting in a wide variety of available devices. In this context the new concept of reconfigurable computing, to which this paper is devoted, has arisen. The main goal of this paper is to introduce the notion of reconfigurable computing, revealing its most important and innovative capacities, and helping the students of relevant disciplines to understand the basic ideas of reconfigurable computing. In order to accomplish this goal we represent a revision of various types of reconfigurable systems organization, namely different reconfiguration modes, coupling mechanisms, the programming model, etc. Then, some techniques that are usually employed in reconfigurable computing in order to achieve good performance are analyzed. Finally, a number of practical examples are discussed and typical application areas are presented.Graças à invenção de novos tipos de dispositivos lógicos programáveis (PLDs – Programmable Logic Devices), o processo de projecto de sistemas digitais sofreu grandes alterações durante as últimas décadas. Actualmente, muitos sistemas digitais são implementados com a ajuda de PLDs de densidade elevada (em particular, com a ajuda de FPGAs - Field-Programmable Gate Arrays). O mercado de FPGAs continua a crescer o que resulta numa grande variedade de dispositivos disponíveis. Neste contexto surgiu um novo método de computação - a computação reconfigurável à qual dedicamos este artigo. Os objectivos principais que se pretende alcançar consistem em introduzir a noção de computação reconfigurável, revelar as suas capacidades mais importantes e inovadoras e auxiliar os alunos das disciplinas relevantes na concepção das ideias básicas da computação reconfigurável. Para tal apresenta-se uma revisão de vários tipos de organização de sistemas reconfiguráveis, nomeadamente consideram-se modos de reconfiguração, mecanismos de interacção entre os componentes principais, modelos de programação de todo o sistema, etc. A seguir, são analisadas técnicas utilizadas na computação reconfigurável para atingir desempenho elevado. Apresentam-se também alguns exemplos de sistemas reconfiguráveis mais conhecidos e as áreas típicas de aplicação da computação reconfigurável
Hardware-Accelerated SAT Solvers
We present a hardware-accelerated Boolean Satisfiability Problem (SAT) solver targeting processor/Field-Programmable Gate Array (FPGA) System on Chip (SoC)s. Our solution accelerates the most expensive subroutine of the Davis-Putnam-Logemann-Loveland (DPLL) algorithm, Boolean Constrain Propagation (BCP), through fine-grained BCP parallelism. Our solution addresses a known bottleneck in SAT solving acceleration: unlike prior state-of-the-art solutions that have addressed the same bottleneck by limiting the amount of exploited parallelism, our solver takes advantage of fine-grained parallelization opportunities and divides large formulas into smaller partitions manageable by FPGA. These partitions are hot-swapped into the FPGA as required during runtime. It is also the first modern completely open-source SAT accelerator, and formula size is limited only by the amount of available external memory, not by on-chip FPGA memory
XATA 2006: XML: aplicações e tecnologias associadas
Esta é a quarta conferência sobre XML e Tecnologias Associadas. Este evento tem-se tornado
um ponto de encontro para quem se interessa pela temática e tem sido engraçado observar que os
participantes gostam e tentam voltar nos anos posteriores. O grupo base de trabalho, a comissão
científica, também tem vindo a ser alargada e todos os que têm colaborado com vontade e com uma
qualidade crescente ano após ano.
Pela quarta vez estou a redigir este prefácio e não consigo evitar a redacção de uma descrição
da evolução da XATA ao longo destes quatro anos:
2003 Nesta "reunião", houve uma vintena de trabalhos submetidos, maioritariamente da autoria
ou da supervisão dos membros que integravam a comissão organizadora o que não envalidou
uma grande participação e acesas discussões.
2004 Houve uma participação mais forte da comunidade portuguesa mas ainda com números pouco
expressivos. Nesta altura, apostou-se também numa forte participação da indústria, o que se
traduziu num conjunto apreciável de apresentações de casos reais. Foi introduzido o processo de
revisão formal dos trabalhos submetidos.
2005 Houve uma forte adesão nacional e internacional (Espanha e Brasil, o que para um evento onde
se pretende privilegiar a língua portuguesa é ainda mais significativo). A distribuição geográfica
em Portugal também aumentou, havendo mais instituições participantes. Automatizaram-se
várias tarefas como o processo de submissão e de revisão de artigos.
2006 Nesta edição actual, e contrariamente ao que acontece no plano nacional, houve um crescimento
significativo. Em todas as edições, tem sido objectivo da comissão organizadora, previlegiar
a produção científica e dar voz ao máximo número de participantes. Nesse sentido, este ano,
não haverá oradores convidados, sendo o programa integralmente preenchido com as apresentações
dos trabalhos seleccionados. Apesar disso ainda houve uma taxa significativa de rejeições,
principalmente devido ao elevado número de submissões. Foi introduzido também, nesta edição,
um dia de tutoriais com o objectivo de fornecer competências mínimas a quem quer começar a
trabalhar na área e também poder assistir de uma forma mais informada à conferência.
Se analisarmos as temáticas, abordadas nas quatro conferências, percebemos que também aqui
há uma evolução no sentido de uma maior maturidade. Enquanto que no primeiro encontro, os
trabalhos abordavam problemas emergentes na utilização da tecnologia, no segundo encontro a
grande incidência foi nos Web Services, uma nova tecnologia baseada em XML, no terceiro, a maior
incidência foi na construção de repositórios, motores de pesquisa e linguagens de interrogação, nesta
quarta edição há uma distribuição quase homogénea por todas as áreas temáticas tendo mesmo
aparecido trabalhos que abordam aspectos científicos e tecnológicos da base da tecnologia XML.
Desta forma, podemos concluir que a tecnologia sob o ponto de vista de utilização e aplicação está
dominada e que a comunidade portuguesa começa a fazer contributos para a ciência de base.Microsoft
Arquitecturas reconfiguráveis para problemas de optimização combinatória
Os problemas combinatórios têm uma gama extremamente ampla de
aplicações numa variedade de áreas de engenharia, incluindo teste de
circuitos electrónicos, reconhecimento de padrões, síntese lógica, etc. Muitos
dos problemas de interesse pertencem às classes NP-hard e NP-complete, o
que implica que os algoritmos relevantes têm no pior caso complexidade
exponencial. Este facto impede a solução de muitos problemas práticos com a
ajuda de computadores convencionais. As implementações em circuitos
integrados específicos também não são viáveis, em particular por causa da
própria heterogeneidade dos problemas combinatórios. Uma solução
alternativa consiste no uso de dispositivos reconfiguráveis que podem ser
personalizados para um algoritmo específico e reutilizados para outros
algoritmos via uma simples reprogramação da sua estrutura interna. As
implementações baseadas em hardware reconfigurável permitem optimizar a
execução dos algoritmos relevantes com a ajuda de técnicas tais como
processamento paralelo, unidades funcionais personalizadas, etc. Tais
implementações possibilitam conter o efeito de crescimento exponencial do
tempo de computação, permitindo deste modo a solução de problemas
combinatórios complexos.
Recentemente foram desenvolvidos vários sistemas reconfiguráveis
destinados a resolver problemas combinatórios. Estes são principalmente
baseados na ideia de hardware específico para a instância, em que para cada
instância do problema é gerado um circuito particular. Nesta tese exploramos
duas abordagens alternativas. A primeira é orientada para o domínio e permite
processar uma variedade de problemas da área da computação combinatória.
Para tal é projectado e implementado um processador combinatório
reconfigurável e são desenvolvidos métodos e ferramentas que asseguram a
sua reconfiguração dinâmica parcial. A segunda abordagem é orientada para a
aplicação e é destinada a resolver um problema combinatório específico. Em
particular, é proposta uma arquitectura inovadora para a solução do problema
de satisfação booleana com a ajuda de uma combinação de software e de
hardware reconfigurável. A técnica adoptada elimina a compilação de
hardware específica à instância e permite processar problemas que excedem
os recursos lógicos disponíveis. São também exploradas as possibilidades de
implementação em hardware reconfigurável de estratégias evolutivas para o
caso do problema do caixeiro viajante.
Esta tese estende o domínio de aplicação da computação reconfigurável ao
demonstrar que esta é capaz de acelerar algoritmos com fluxos de controlo
complexos.Combinatorial problems have an extremely wide range of practical applications
in a variety of engineering areas, including the testing of electronic circuits,
pattern recognition, logic synthesis, etc. Many of the problems of interest
belong to the classes NP-hard and NP-complete, which implies that the
relevant algorithms have an exponential worst-case complexity. This fact
precludes the solution of many practical problems with conventional
computers. ASIC-based implementations are also not viable, in particular
because of the inherent heterogeneity of combinatorial problems.
Reconfigurable devices offer an alternative solution, which can be customized
to the requirements of a specific algorithm and reutilized for other algorithms
via a simple reprogramming of their internal structure. Implementations based
on reconfigurable hardware permit the execution of the relevant algorithms to
be optimized with the aid of such techniques as parallel processing,
personalized functional units, etc. Such implementations allow the effect of
exponential growth in the computation time to be delayed, thus enabling more
complex problem instances to be solved.
Recently, a few reconfigurable engines for combinatorial problems have been
developed. They are mainly based on the idea of instance-specific hardware,
which assumes that a particular circuit is generated for each problem instance.
In this thesis we explore two alternative approaches. The first, domain-specific,
approach enables a variety of problems in the area of combinatorial
computation to be addressed. For this purpose, a reconfigurable combinatorial
processor has been designed and implemented and a number of methods and
tools that support its partial dynamic reconfiguration have been developed. The
second, application-specific, approach is oriented towards solving individual
combinatorial problems. In particular, a novel architecture is proposed for
solving the Boolean satisfiability problem with the aid of software and
reconfigurable hardware. The adopted technique avoids instance-specific
hardware compilation and permits problems that exceed the available logic
resources to be solved. The possibility of implementing evolutionary strategies
for the traveling salesman problem in reconfigurable hardware is also explored.
This thesis extends the application domain of reconfigurable computing by
demonstrating that it is effective in accelerating algorithms with complex control
flows
Parallelization of SAT on Reconfigurable Hardware
Quoique très difficile à résoudre, le problème de satisfiabilité Booléenne (SAT) est fréquemment utilisé lors de la modélisation d’applications industrielles. À cet effet, les deux dernières décennies ont vu une progression fulgurante des outils conçus pour trouver des solutions à ce problème NP-complet. Deux grandes avenues générales ont été explorées afin de produire ces outils, notamment l’approche logicielle et matérielle.
Afin de raffiner et améliorer ces solveurs, de nombreuses techniques et heuristiques ont été proposées par la communauté de recherche. Le but final de ces outils a été de résoudre des problèmes de taille industrielle, ce qui a été plus ou moins accompli par les solveurs de nature logicielle. Initialement, le but de l’utilisation du matériel reconfigurable a été de produire des solveurs pouvant trouver des solutions plus rapidement que leurs homologues logiciels. Cependant, le niveau de sophistication de ces derniers a augmenté de telle manière qu’ils restent le meilleur choix pour résoudre SAT. Toutefois, les solveurs modernes logiciels n’arrivent toujours pas a trouver des solutions de manière efficace à certaines instances SAT.
Le but principal de ce mémoire est d’explorer la résolution du problème SAT dans le contexte du matériel reconfigurable en vue de caractériser les ingrédients nécessaires d’un solveur SAT efficace qui puise sa puissance de calcul dans le parallélisme conféré par une plateforme FPGA. Le prototype parallèle implémenté dans ce travail est capable de se mesurer, en termes de vitesse d’exécution à d’autres solveurs (matériels et logiciels), et ce sans utiliser aucune heuristique. Nous montrons donc que notre approche matérielle présente une option prometteuse vers la résolution d’instances industrielles larges qui sont difficilement abordées par une approche logicielle.Though very difficult to solve, the Boolean satisfiability problem (SAT) is extensively used to model various real-world applications and problems. Over the past two decades, researchers have tried to provide tools that are used, to a certain degree, to find solutions to the Boolean satisfiability problem. The nature of these tools is broadly divided in software and reconfigurable hardware solvers. In addition, the main algorithms used to solve this problem have also been complemented with heuristics of various levels of sophistication to help overcome some of the NP-hardness of the problem. The end goal of these tools has been to provide solutions to industrial-sized problems of enormous size. Initially, reconfigurable hardware tools provided a promising avenue to accelerating SAT solving over traditional software based solutions. However, the level of sophistication of software solvers overcame their hardware counterparts, which remained limited to smaller problem instances. Even so, modern state-of-the-art software solvers still fail unpredictably on some instances.
The main focus of this thesis is to explore solving SAT on reconfigurable hardware in order to gain an understanding of what would be essential ingredients to add (and discard) to a very efficient hardware SAT solver that obtains its processing power from the raw parallelism of an FPGA platform. The parallel prototype solver that was implemented in this work has been found to be comparable with other hardware and software solvers in terms of execution speed even though no heuristics or other helping techniques were implemented. We thus show that our approach provides a very promising avenue to solving large, industrial SAT instances that might be difficult to handle by software solvers
