415 research outputs found
Revisiting Actor Programming in C++
The actor model of computation has gained significant popularity over the
last decade. Its high level of abstraction makes it appealing for concurrent
applications in parallel and distributed systems. However, designing a
real-world actor framework that subsumes full scalability, strong reliability,
and high resource efficiency requires many conceptual and algorithmic additives
to the original model.
In this paper, we report on designing and building CAF, the "C++ Actor
Framework". CAF targets at providing a concurrent and distributed native
environment for scaling up to very large, high-performance applications, and
equally well down to small constrained systems. We present the key
specifications and design concepts---in particular a message-transparent
architecture, type-safe message interfaces, and pattern matching
facilities---that make native actors a viable approach for many robust,
elastic, and highly distributed developments. We demonstrate the feasibility of
CAF in three scenarios: first for elastic, upscaling environments, second for
including heterogeneous hardware like GPGPUs, and third for distributed runtime
systems. Extensive performance evaluations indicate ideal runtime behaviour for
up to 64 cores at very low memory footprint, or in the presence of GPUs. In
these tests, CAF continuously outperforms the competing actor environments
Erlang, Charm++, SalsaLite, Scala, ActorFoundry, and even the OpenMPI.Comment: 33 page
A gentle transition from Java programming to Web Services using XML-RPC
Exposing students to leading edge vocational areas of relevance such as Web Services can be difficult. We show a lightweight approach by embedding a key component of Web Services within a Level 3 BSc module in Distributed Computing. We present a ready to use collection of lecture slides and student activities based on XML-RPC. In
addition we show that this material addresses the central topics in the context of web services as identified by Draganova (2003)
An Ada-like language to facilitate reliable coding of low cost embedded systems
Due to a lack of operating system (0/S) support, it is more difficult to develop programs for embedded systems than for workstations. For those developing on a low budget, the problem is often further compounded by the necessity of using inappropriate, 0/S dependent, compilers. This study attempts to ascertain those elements of a High Level Language (HLL) which are absolutely necessary and implementable to produce reliable, efficient, embedded programs without the benefit of a large budget. The study is based upon the Ada philosophy as the Ada language incorporates many desirable features for modelling real-world problems in terms of embedded solutions. By implication, the research provides a small step towards an increased availability of low cost tools to assist in the development of reliable and efficient code for use in medium performance embedded systems
Bigraph Metaprogramming for Distributed Computation
Ubiquitous computing is a paradigm that emphasises integration of computing activities into the fabric of everyday life. With the increasing availability of small, cheap computing devices, the ubiquitous computing model seems more and more likely to supplant desktop computing as the dominant paradigm. Similarly, the presence of high-speed network connectivity between vast numbers of computers has already made distributed computing the preferred paradigm for many application domains. Unfortunately, traditional approaches to software development are not necessarily well-suited to developing software in a post-desktop world. We present an extension to the bigraphical reactive systems formalism that enables us to construct a programming language based upon it. We believe that this programming language provides programmers with an environment better suited to the challenges that arise when creating software within a distributed or ubiquitous computing paradigm. We detail our modification to the theory of bigraphical reactive systems that enables metaprogramming. Finally, we provide a description of our prototype implementation of a programming language that enables metaprogramming of bigraphical reactive systems
ZeroLeak: Using LLMs for Scalable and Cost Effective Side-Channel Patching
Security critical software, e.g., OpenSSL, comes with numerous side-channel
leakages left unpatched due to a lack of resources or experts. The situation
will only worsen as the pace of code development accelerates, with developers
relying on Large Language Models (LLMs) to automatically generate code. In this
work, we explore the use of LLMs in generating patches for vulnerable code with
microarchitectural side-channel leakages. For this, we investigate the
generative abilities of powerful LLMs by carefully crafting prompts following a
zero-shot learning approach. All generated code is dynamically analyzed by
leakage detection tools, which are capable of pinpointing information leakage
at the instruction level leaked either from secret dependent accesses or
branches or vulnerable Spectre gadgets, respectively. Carefully crafted prompts
are used to generate candidate replacements for vulnerable code, which are then
analyzed for correctness and for leakage resilience. From a cost/performance
perspective, the GPT4-based configuration costs in API calls a mere few cents
per vulnerability fixed. Our results show that LLM-based patching is far more
cost-effective and thus provides a scalable solution. Finally, the framework we
propose will improve in time, especially as vulnerability detection tools and
LLMs mature
smgn: Rapid Prototyping of Small Domain-Specific Languages
This paper presents smgn, a grammar-based tool that provides support for scanning, parsing, and automatic parse tree construction. The parse tree can be easily navigated and manipulated with a specific macro language while conveniently generating textual output. smgn is easy to learnāeven for non-compiler expertsāand well suited for rapid prototyping of small domain-specific languages. It is part of the SUIF compiler system, where it has been used for the development of the Hoof domain-specific language. Furthermore, smgn was employed successfully for the rapid prototyping of another domain-specific language, called Bauhaus IMDL. We introduce smgn, describe experiences in using it for DSL construction and evaluate its usefulness based on these experiences
Ragnarok
This report describes the current state of my research in software development environments. I argue in favour of strong support for project management, comprehension and navigation, and collaboration primarily based on experiences from developing large-scale industrial-strength applications.An underlying model of such an environment, named ``RagnarokĀ“Ā“, is outlined. A design and first prototype of important parts of Ragnarok is described as well as some results from initial experiments
Recommended from our members
Computationally-Mediated Interactions with Traditional Textile Crafts
Crafting is a fundamental part of humanity; it gives us purpose and satisfaction, and it produces items that are beautiful and functional. At the same time, our relationship to traditional physical crafts has seen a massive upheaval due to technological advancements. The freedom and support to create textile crafts for pleasure and passion rather than necessity has never been more widespread. Interdisciplinary explorations of computer science and textile crafts have been increasing due to more people being intrinsically motivated to craft, more forms of supportive technology constantly being built, and more interconnected communities growing via the internet. The work in this dissertation begins to coalesce these user-focused and craft-based experiences by presenting crafting as a series of interconnected and nested processes covering the design, manufacture, and experience of textile craft products. Within these processes, I examine how crafters experience physical and digital forms of agency, both high and low, as well as ludic engagement or the lack thereof, as a means of evaluating user perception of technology related to textiles. As exemplar artifacts, I present my own, as well as collaborative, research on design support software, a manufacturing machine appropriated as a game console, and a pair of electronic textile-based fidget toys. This research illustrates how many varied design choices affected audiences' agency and ludic engagement by examining crafters' perceptions and skill levels, as well as the craft domain interpretations by accompanying software and hardware. The interdisciplinary work presented in this dissertation crosses the boundaries of creativity support software, computational creativity, game studies, human-computer interaction, and crafting communities outside the realm of academia. More importantly, this research begins to explicitly join predominantly feminine craft and masculine technological communities across all ages for the enrichment of all those involved
- ā¦