SearcharxivSearch

arXiv subjects

Anthony Arnold

Publications and source records attributed to Anthony Arnold.

2 recordsLinked to original sources

Embedded Made Easy -- Rethinking Embedded + Cloud Software Development (WIP)

The process of engineering and deploying applications in the edge/embedded space is massively complicated by the non-homogeneous nature of the software stack and the complexity of diagnostics & debugging. Often different languages and runtimes are used for different components of the system forcing designers to, irrevocably, make decisions about what components run on the periphery and what components run in the cloud. Further complications arise when handling and diagnosing failures in the system. Multiple stacks and, often, limited support for debugging complicate the already difficult task of analyzing distributed applications. This paper presents a work-in-progress vision for a unified language and runtime system that allows applications to scale seamlessly across the edge and cloud. Using a single language and runtime, applications can be developed and tested in a single environment, and then deployed to any component of the system -- from resource limited controllers to large cloud servers. Further, we outline how this retargetable stack can provide integrated diagnostics and debugging tools that allow developers to record and replay distributed events locally for analysis and debugging.

cs.DC

Catalpa: GC for a Low-Variance Software Stack

The performance of an application/runtime is usually conceptualized as a continuous function where, the lower the amount of memory/time used on a given workload, then the better the compiler/runtime is. However, in practice, good performance of an application is viewed as more of a binary function - either the application responds in under, say 100 ms, and provides a good user experience, or it takes a noticeable amount of time, leaving the user waiting and potentially abandoning the task. Thus, performance really means how often the application is fast enough to meet user expectations, leading industrial developers to focus on the 95th and 99th percentile tail-latencies as heavily, or moreso, than average response time. Our vision is to create a software stack that actively supports these needs via programming language and runtime system design. In this paper we present a novel garbage-collector design, the Catalpa collector, for the Bosque programming language and runtime. This allocator is designed to minimize latency and tail-latency variability while maintaining high-throughput and incurring small memory overheads. To achieve these goals we leverage various features of the Bosque language, including immutability and reference-cycle freedom, to construct a collector that has provably bounded collection pauses, incurs a fixed-constant memory overhead, and ensures starvation freedom for the application!

cs.PL