35 research outputs found

    Actors that Unify Threads and Events

    Get PDF
    There is an impedance mismatch between message-passing concurrency and virtual machines, such as the JVM. VMs usually map their threads to heavyweight OS processes. Without a lightweight process abstraction, users are often forced to write parts of concurrent applications in an event-driven style which obscures control flow, and increases the burden on the programmer. In this paper we show how thread-based and event-based programming can be unified under a single actor abstraction. Using advanced abstraction mechanisms of the Scala programming language, we implemented our approach on unmodified JVMs. Our programming model integrates well with the threading model of the underlying VM

    Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models

    Get PDF
    The upcoming many-core architectures require software developers to exploit concurrency to utilize available computational power. Today's high-level language virtual machines (VMs), which are a cornerstone of software development, do not provide sufficient abstraction for concurrency concepts. We analyze concrete and abstract concurrency models and identify the challenges they impose for VMs. To provide sufficient concurrency support in VMs, we propose to integrate concurrency operations into VM instruction sets. Since there will always be VMs optimized for special purposes, our goal is to develop a methodology to design instruction sets with concurrency support. Therefore, we also propose a list of trade-offs that have to be investigated to advise the design of such instruction sets. As a first experiment, we implemented one instruction set extension for shared memory and one for non-shared memory concurrency. From our experimental results, we derived a list of requirements for a full-grown experimental environment for further research

    Programming and Deployment of Active Objects with Application-Level Scheduling

    Get PDF
    We extend and implement a modeling language based on concurrent active objects with application-level scheduling policies. The language allows a programmer to assign pri- orities at the application level, for example, to method def- initions and method invocations, and assign corresponding policies to the individual active objects for scheduling the messages. Thus, we leverage scheduling and performance related issues, which are becoming increasingly important in multi-core and cloud applications, from the underlying operating system to the application level. We describe a tool-set to transform models of active objects extended with application-level scheduling policies into Java. This tool-set allows a direct use of Java class libraries; thus, we obtain a full-fledged programming language based on active objects which allows for high-level control of deployment related is- sues

    Programming and deployment of active objects with application-level scheduling

    Full text link
    We extend and implement a modeling language based on concurrent active objects with application-level scheduling policies. The language allows a programmer to assign pri-orities at the application level, for example, to method def-initions and method invocations, and assign corresponding policies to the individual active objects for scheduling the messages. Thus, we leverage scheduling and performance related issues, which are becoming increasingly important in multi-core and cloud applications, from the underlying operating system to the application level. We describe a tool-set to transform models of active objects extended with application-level scheduling policies into Java. This tool-set allows a direct use of Java class libraries; thus, we obtain a full-fledged programming language based on active objects which allows for high-level control of deployment related is-sues

    Stage: Python with Actors

    No full text

    An Automatic Actors to Threads Mapping Technique for JVM-Based Actor Frameworks

    Get PDF
    Actor frameworks running on Java Virtual Machine (JVM) platform face two main challenges in utilizing multi-core architectures, i) efficiently mapping actors to JVM threads, and ii) scheduling JVM threads on multi-core. JVM-based actor frameworks allow fine tuning of actors to threads mapping, however scheduling of threads on multi-core is left to the OS scheduler. Hence, efficiently mapping actors to threads is critical for achieving good performance and scalability. In the existing JVM-based actor frameworks, programmers select default actors to threads mappings and iteratively fine tune the mappings until the desired performance is achieved. This process is tedious and time consuming when building large scale distributed applications. We propose a technique that automatically maps actors to JVM threads. Our technique is based on a set of heuristics with the goal of balancing actors computations across JVM threads and reducing communication overheads. We explain our technique in the context of the Panini programming language, which provides capsules as an actor-like abstraction for concurrency, but also explore its applicability to other approaches

    Решение задачи распределенного индексирования в оперативной памяти на базе модели актеров с использованием фреймворка Akka

    No full text
    Описана программная система построения распределенного координатного индекса в оперативной памяти на базе модели актеров с использованием языка программирования Java и фреймворка Akka. Система позволяет подключать в сеть любое количество машин, легко расширятся и обрабатывать фразовые запросы. Реализованная в системе поддержка репликаций обеспечивает стабильную работу.The distributed solving system for construction of coordinate index in the RAM based on model of actors using Java programming language and framework Akka is described. The system allows to connect any number of machines, it expands easily, allowing to process phrase queries. The system provides ability to replicate that ensures its stable operations.Описано програмну систему побудови розподіленого координатного індексу в оперативній пам’яті на базі моделі акторів з використанням мови програмування Java і фреймворку Akka. Система дозволяє під’єднувати будь-яку кількість машин, легко розширюватися та опрацьовувати фразові запити. Реалізована в системі підтримка реплікації забезпечує стабільну роботу

    Ренесанс використання моделі акторів до побудови паралельних та розподілених застосунків

    No full text
    У статті проаналізована модель акторів (Actor model) як засіб високорівневого підходу до побудови паралельних та розподілених систем. Досліджено розвиток моделі під впливом парадигми об’єктно-орієнтованого програмування та формування головних властивостей акторів. Розглянуто основні особливості реалізації моделі за допомогою об’єктно-функціональної мови Scala на прикладі бібліотеки Akka
    corecore