{"title":"Manyfold actors: extending the C++ actor framework to heterogeneous many-core machines using OpenCL","authors":"Raphael Hiesgen, Dominik Charousset, T. Schmidt","doi":"10.1145/2824815.2824820","DOIUrl":"https://doi.org/10.1145/2824815.2824820","url":null,"abstract":"The processing power of modern many core hardware such as graphics processing units (GPUs) or coprocessors is increasingly available for general-purpose computation. The seamless way of actor systems to addresses concurrent and distributed programming makes it an attractive approach to integrate these novel architectures. In this work, we introduce OpenCL-enabled actors to the C++ Actor Framework (CAF). This offers a high level interface for accessing any OpenCL device without leaving the actor paradigm. The new type of actor is integrated into the runtime environment of CAF and gives rise to transparent message passing in distributed systems on heterogeneous hardware. New actors are instantiated by the function spawn_cl, while the runtime environment handles the discovery and setup of OpenCL devices in the background. Our evaluations on a commodity GPU, an Nvidia TESLA, and an Intel PHI reveal the expected linear scaling behavior when offloading larger work items. For sub-second duties, the efficiency of offloading was found to largely differ between devices. Moreover, our findings indicate a negligible overhead over programming the native OpenCL API.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127255371","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Objects as session-typed processes","authors":"Stephanie Balzer, F. Pfenning","doi":"10.1145/2824815.2824817","DOIUrl":"https://doi.org/10.1145/2824815.2824817","url":null,"abstract":"A key idea in object-oriented programming is that objects encapsulate state and interact with each other by message exchange. This perspective suggests a model of computation that is inherently concurrent (to facilitate simultaneous message exchange) and that accounts for the effect of message exchange on an object's state (to express valid sequences of state transitions). In this paper we show that such a model of computation arises naturally from session-based communication. We introduce an object-oriented programming language that has processes as its only objects and employs linear session types to express the protocols of message exchange and to reason about concurrency and state. Based on various examples we show that our language supports the typical patterns of object-oriented programming (e.g., encapsulation, dynamic dispatch, and subtyping) while guaranteeing session fidelity in a concurrent setting. In addition, we show that our language facilitates new forms of expression (e.g., type-directed reuse, internal choice), which are not available in current object-oriented languages. We have implemented our language in a prototype compiler.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123791569","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Arvin Zakeriyan, E. Khamespanah, M. Sirjani, R. Khosravi
{"title":"Jacco: more efficient model checking toolset for Java actor programs","authors":"Arvin Zakeriyan, E. Khamespanah, M. Sirjani, R. Khosravi","doi":"10.1145/2824815.2824819","DOIUrl":"https://doi.org/10.1145/2824815.2824819","url":null,"abstract":"Actors provide concurrent, distributed, and event-driven autonomous objects which communicate asynchronously. Actor model benefits from higher level of scalability and actor programs are less error-prone in comparison to programs developed in other concurrent models. However, it does not prevent the racing and concurrency errors. So, to guarantee the correctness of mission critical actor programs, verification techniques like model checking are needed. Previously, Basset has been developed based on Java PathFinder, for model checking of Java actor programs. The message scheduling approach of Basset can cause false negative results as well as and early state space exploration. In addition, using Java PathFinder as the back-end model checker imposes the execution time inefficiencies. To resolve these issues, we developed Jacco as the direct model checking toolset for Java actor programs. We provided a new message scheduling approach and implemented it in Java. To illustrate how efficiently Jacco works, Basset and Jacco model checking results are compared for a number of case studies. We also used Jacco for the model checking of a real-world program in robotics systems.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128769169","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Exploring AOP from an OOP perspective","authors":"Rem W. Collier, S. Russell, David Lillis","doi":"10.1145/2824815.2824818","DOIUrl":"https://doi.org/10.1145/2824815.2824818","url":null,"abstract":"Agent-Oriented Programming (AOP) researchers have successfully developed a range of agent programming languages that bridge the gap between theory and practice. Unfortunately, despite the in-community success of these languages, they have proven less compelling to the wider software engineering community. One of the main problems facing AOP language developers is the need to bridge the cognitive gap that exists between the concepts underpinning mainstream languages and those underpinning AOP. In this paper, we attempt to build such a bridge through a conceptual mapping between Object-Oriented Programming (OOP) and the AgentSpeak(L) family of AOP languages. This mapping explores how OOP concepts and the concurrent programming concept of threads relate to AgentSpeak(L) concepts. We then use our analysis of this mapping to drive the design of a new programming language entitled ASTRA.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130250719","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","authors":"E. G. Boix, Philipp Haller, A. Ricci, C. Varela","doi":"10.1145/2824815","DOIUrl":"https://doi.org/10.1145/2824815","url":null,"abstract":"It is our great pleasure to welcome you to the proceedings of the 4th International Workshop on Programming based on Actors, Agents, and Decentralized Control (AGERE!). The latest edition of the AGERE! workshop confirms its role as a unique venue in the research landscape bringing together researchers and practitioners interested in actors, agents and, more generally, high-level paradigms emphasizing decentralized control in thinking, modeling, developing, and reasoning about programs and software systems. \u0000 \u0000The fundamental turn of software into concurrency and distribution is not only a matter of performance, but also of design and abstraction. It calls for programming paradigms that, compared to current mainstream paradigms, would allow us to more naturally think about, design, develop, execute, debug, and profile systems exhibiting different degrees of concurrency, autonomy, decentralization of control, and physical distribution. \u0000 \u0000AGERE! is an ACM SIGPLAN workshop dedicated to focusing on and developing research on programming systems, languages and applications based on actors, agents and any related programming paradigm promoting a decentralized mindset in solving problems and in developing systems to implement such solutions. \u0000 \u0000All stages of software development are considered interesting for the workshop, including requirements, modeling, formalization, prototyping, design, implementation, tooling, testing, and any other means of producing running software based on actors and agents as first-class abstractions. The scope of the workshop includes aspects that concern both the theory and the practice of design and programming using such paradigms, so as to bring together researchers working on models, languages and technologies, as well as practitioners using such technologies to develop real-world systems and applications. \u0000 \u0000The workshop was organized as a one-day workshop, integrating both: \u0000a part featuring a mini-conference style, like previous editions, reserving some time slots for the presentation and discussion of those accepted contributions that are meant to be published in the formal proceedings. \u0000a part featuring a brainstorming style, more targeted to solicit the discussion of ideas/challenges/new directions, etc. raised by the set of position/work-in-progress papers submitted to the workshop and selected by the PC. \u0000 \u0000 \u0000 \u0000The workshop welcomed three main kinds of contributions: \u0000Mature contributions: full papers presenting new previously unpublished research in one or more of the topics of the workshop. \u0000Position papers and work-in-progress contributions: short papers introducing a contribution (an idea, a viewpoint, an argument, work-in-progress, etc.) which may be in its initial stage and not fully developed but which is worth being presented given its relevance to the AGERE! topics, to trigger discussions and interactions. \u0000Demos: these contributions describe a technology/system presented and discussed during the event.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"28 9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116165938","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
S. Clebsch, S. Drossopoulou, Sebastian Blessing, Andy McNeil
{"title":"Deny capabilities for safe, fast actors","authors":"S. Clebsch, S. Drossopoulou, Sebastian Blessing, Andy McNeil","doi":"10.1145/2824815.2824816","DOIUrl":"https://doi.org/10.1145/2824815.2824816","url":null,"abstract":"Abstract Combining the actor-model with shared memory for performance is efficient but can introduce data-races. Existing approaches to static data-race freedom are based on uniqueness and immutability, but lack flexibility and high performance implementations. Our approach, based on deny properties, allows reading, writing and traversing unique references, introduces a new form of write uniqueness, and guarantees atomic behaviours.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123763945","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Akka.js: towards a portable actor runtime environment","authors":"Gianluca Stivan, Andrea Peruffo, Philipp Haller","doi":"10.1145/2824815.2824821","DOIUrl":"https://doi.org/10.1145/2824815.2824821","url":null,"abstract":"Multiple mature implementations of the actor model of concurrency exist. Besides several ones available for the Java Virtual Machine, there are others, for example, written in SmallTalk or in C++, targeting native platforms or other virtual machines. Recently, runtime environments for platforms such as GPUs have also appeared. However, so far, no full-featured, distributed actor runtime environment has allowed actor programs to run, unchanged, on both Java and JavaScript virtual machines. This paper describes our ongoing effort in providing a portable implementation of the widely-used Akka actor framework.","PeriodicalId":316006,"journal":{"name":"Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129851182","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}