2,475 research outputs found
An Investigation into Animating Plant Structures within Real-time Constraints
This paper is an analysis of current developments in rendering botanical structures for scientic and entertainment purposes with a focus on visualising growth. The choices of practical investigations produce a novel approach for parallel parsing of difficult bracketed L-Systems, based upon the work of Lipp, Wonka and Wimmer (2010). Alongside this is a general overview of the issues involved when looking at growing systems, technical details involving programming for the Graphics Processing Unit (GPU) and other possible solutions for further work that also could achieve the project's goals
On Term-Graph Rewrite Strategies
AbstractWe tackle the problem of cyclic term-graph rewriting. We first revisit the classical algorithmic approach to term-graph rewriting by providing a definition of rewrite rules of the form lhsârhs where the left-hand sides are term-graphs and the right-hand sides are sequences of actions. Such actions, which specify how to rewrite a term-graph in a stepwise manner, contribute to simplify substantially the definition of cyclic term-graph rewriting. Then we define a new class of term-graph rewrite systems which are confluent over the so-called admissible term-graphs. Finally, we provide an efficient rewrite strategy which contracts only needed redexes and give pointers to other results regarding optimal rewrite strategies of admissible term-graphs
New Solutions to the Firing Squad Synchronization Problems for Neural and Hyperdag P Systems
We propose two uniform solutions to an open question: the Firing Squad
Synchronization Problem (FSSP), for hyperdag and symmetric neural P systems,
with anonymous cells. Our solutions take e_c+5 and 6e_c+7 steps, respectively,
where e_c is the eccentricity of the commander cell of the dag or digraph
underlying these P systems. The first and fast solution is based on a novel
proposal, which dynamically extends P systems with mobile channels. The second
solution is substantially longer, but is solely based on classical rules and
static channels. In contrast to the previous solutions, which work for
tree-based P systems, our solutions synchronize to any subset of the underlying
digraph; and do not require membrane polarizations or conditional rules, but
require states, as typically used in hyperdag and neural P systems
A Compiler and Runtime Infrastructure for Automatic Program Distribution
This paper presents the design and the implementation of a compiler and runtime infrastructure for automatic program distribution. We are building a research infrastructure that enables experimentation with various program partitioning and mapping strategies and the study of automatic distribution's effect on resource consumption (e.g., CPU, memory, communication). Since many optimization techniques are faced with conflicting optimization targets (e.g., memory and communication), we believe that it is important to be able to study their interaction.
We present a set of techniques that enable flexible resource modeling and program distribution. These are: dependence analysis, weighted graph partitioning, code and communication generation, and profiling. We have developed these ideas in the context of the Java language. We present in detail the design and implementation of each of the techniques as part of our compiler and runtime infrastructure. Then, we evaluate our design and present preliminary experimental data for each component, as well as for the entire system
Loo.py: transformation-based code generation for GPUs and CPUs
Today's highly heterogeneous computing landscape places a burden on
programmers wanting to achieve high performance on a reasonably broad
cross-section of machines. To do so, computations need to be expressed in many
different but mathematically equivalent ways, with, in the worst case, one
variant per target machine.
Loo.py, a programming system embedded in Python, meets this challenge by
defining a data model for array-style computations and a library of
transformations that operate on this model. Offering transformations such as
loop tiling, vectorization, storage management, unrolling, instruction-level
parallelism, change of data layout, and many more, it provides a convenient way
to capture, parametrize, and re-unify the growth among code variants. Optional,
deep integration with numpy and PyOpenCL provides a convenient computing
environment where the transition from prototype to high-performance
implementation can occur in a gradual, machine-assisted form
Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
To harness the power of multi-core and distributed platforms, and to make the
development of concurrent software more accessible to software engineers,
different object-oriented concurrency models such as SCOOP have been proposed.
Despite the practical importance of analysing SCOOP programs, there are
currently no general verification approaches that operate directly on program
code without additional annotations. One reason for this is the multitude of
partially conflicting semantic formalisations for SCOOP (either in theory or
by-implementation). Here, we propose a simple graph transformation system (GTS)
based run-time semantics for SCOOP that grasps the most common features of all
known semantics of the language. This run-time model is implemented in the
state-of-the-art GTS tool GROOVE, which allows us to simulate, analyse, and
verify a subset of SCOOP programs with respect to deadlocks and other
behavioural properties. Besides proposing the first approach to verify SCOOP
programs by automatic translation to GTS, we also highlight our experiences of
applying GTS (and especially GROOVE) for specifying semantics in the form of a
run-time model, which should be transferable to GTS models for other concurrent
languages and libraries.Comment: In Proceedings GaM 2015, arXiv:1504.0244
Quantified CTL: Expressiveness and Complexity
While it was defined long ago, the extension of CTL with quantification over
atomic propositions has never been studied extensively. Considering two
different semantics (depending whether propositional quantification refers to
the Kripke structure or to its unwinding tree), we study its expressiveness
(showing in particular that QCTL coincides with Monadic Second-Order Logic for
both semantics) and characterise the complexity of its model-checking and
satisfiability problems, depending on the number of nested propositional
quantifiers (showing that the structure semantics populates the polynomial
hierarchy while the tree semantics populates the exponential hierarchy)
First Steps Towards a Geometry of Computation
We introduce a geometrical setting which seems promising for the study
of computation in multiset rewriting systems, but could also be applied to register machines and other models of computation. This approach will be applied here to membrane
systems (also known as P systems) without dynamical membrane creation. We discuss
the role of maximum parallelism and further simplify our model by considering only one
membrane and sequential application of rules, thereby arriving at asynchronous multiset
rewriting systems (AMR systems). Considering only one membrane is no restriction, as
each static membrane system has an equivalent AMR system. It is further shown that
AMR systems without a priority relation on the rules are equivalent to Petri Nets. For
these systems we introduce the notion of asymptotically exact computation, which allows
for stochastic appearance checking in a priori bounded (for some complexity measure)
computations. The geometrical analogy in the lattice Nd0
; d 2 N, is developed, in which a
computation corresponds to a trajectory of a random walk on the directed graph induced
by the possible rule applications. Eventually this leads to symbolic dynamics on the partition generated by shifted positive cones C+
p , p 2 Nd0
, which are associated with the
rewriting rules, and their intersections. Complexity measures are introduced and we consider non-halting, loop-free computations and the conditions imposed on the rewriting
rules. Eventually, two models of information processing, control by demand and control by
availability are discussed and we end with a discussion of possible future developments
Visualization of Distributed Algorithms Based on Graph Relabelling Systems1 1This work has been supported by the European TMR research network GETGRATS, and by the âConseil RĂŠgional d' Aquitaneâ.
AbstractIn this paper, we present a uniform approach to simulate and visualize distributed algorithms encoded by graph relabelling systems. In particular, we use the distributed applications of local relabelling rules to automatically display the execution of the whole distributed algorithm. We have developed a Java prototype tool for implementing and visualizing distributed algorithms. We illustrate the different aspects of our framework using various distributed algorithms including election and spanning trees
Cotransforming Grammars with Shared Packed Parse Forests
SPPF (shared packed parse forest) is the best known graph representation of a parse forest (family of related parse trees) used in parsing with ambiguous/conjunctive grammars. Systematic general purpose transformations of SPPFs have never been investigated and are considered to be an open problem in software language engineering. In this paper, we motivate the necessity of having a transformation operator suite for SPPFs and extend the state of the art grammar transformation operator suite to metamodel/model (grammar/graph) cotransformations
- âŚ