Actors in a New "Highly Parallel" World

67 %
33 %
Information about Actors in a New "Highly Parallel" World

Published on May 4, 2009

Author: feamcor



These are the slides related to my paper that I presented at the 2nd ICSE WUP. It gives a short background about the actor-model and describes what is my research project and its intended outcome.

Fábio Corrêa  Polelo Research Group  Computer Science Department  University of Pretoria 

  The Free Lunch is Over    Multi‐core Processors    Software Crisis    Industry and Academia are in a quest   in order to improve this situation   before dozen cores arrive and   slowdown the whole industry    Millions of dollars are being   invested in research  Sourc e : Intel  

  Ignored by most developers for years    Difficult to master    Threads, Locks, Race Condition, Deadlocks  and Shared/Mutable State    Non‐Deterministic and Difficult to Debug    Existing thread implementations   are somewhat low‐level   and not standardized  Source: AMD 

  A HIGH‐LEVEL programming model   1.  Easier to understand and master  2.  Deterministic  3.  Non‐shared/Non‐mutable state  4.  Utilize all available cores without any re‐ configuration or re‐compilation  ntel  ce: I Sour

  Actor Model of Concurrent Computation    Formalism defined by Carl Hewitt et al. [MIT  AI Lab, 1973]    Semantics solidified by Gul Agha [MIT AI Lab  (Message‐Passing Semantics Group), 1985]    Research and implementations done along  the years    Erlang is the flagship implementation 

  REACTIVE entities that have a unique name  (mail address) and, based on an incoming  message received through its individual inbox  (message queue), can:  1.  SEND a finite set of messages to other known  actors  2.  CREATE a finite set of new actors  3.  BEHAVE differently in relation to the next  incoming messages. 

  ONLY through the exchange of messages    Communication is ASYNCHRONOUS    Non‐blocking SEND    Blocking RECEIVE 

  Messages are IMMUTABLE    No synchronization devices (locks) required    Not subject to memory corruption    Actors are usually implemented on  lightweight processes (green threads)    Messages are processed using pattern  matching 

  In order to identify and model an actor  system, and its dynamics, the following must  be determined:  1.  All type of actors of the system (classes?)  2.  The contract that each actor responds to  (interfaces?)  3.  The behavior that each actor should take when  receiving a message (methods?) 

  An EMPIRICAL study that investigates the  viability of using the actor‐model as  the  programming model for tackling the  concurrency crisis for business applications    The audience is the developers community    Software Engineering Trade‐Offs     Effectiveness on multi‐cores     Scalability    Paradigm Change 

  Design of a real‐life business application    Develop a set of testing data    Java implementation of the application    Other implementations using:  1.  Erlang + Actors + FP  2.  Scala + Actors + OOP + FP  3.  Java + Kilim + Actors + OOP  4.  C# + CCR + Actors + OOP  5.  F# + CCR + Actors + FP + OOP 

A RATING ENGINE,  a.k.a. rater, is an important    module of a billing system (BSS ‐ business  support system)    A rater process input events and rate them  according to the price plan chosen by the  subscriber     Typical users of a rater:   fixed‐line/wireless telephony providers     cable/satellite TV providers     water/electricity utility providers     banks   

RATENG is a simplification of a rating engine for    a cellular carrier (wireless telephony provider)    Events describe voice calls (in/out), text  messages (SMS) or data sessions (internet)    Events were generated by subscribers (home or  roamers)    Events were carried over the home network or in  another one    As the outcome of each rated event, the balance  of the account and its related subscriptions must  be updated, according to the billing cycle when  the event occurred  

FÁBIO CORRÊA  Mobile: 076‐816‐6848  eMail: 

  No 3rd‐party tools will be used. All the  implementations somehow have to rely only  on the standard library of the tool that is  being used    The Java implementation will be the baseline  for evaluating software engineering aspects    The Erlang implementation will be the  baseline for evaluating scalability aspects 

Erlang is a dynamically typed functional    language that was developed by Ericsson in 1985  and released as open‐source on 1997    It was developed with soft real‐time,  concurrency, fault‐tolerance, distribution and  hot‐replacement in mind, due to the very nature  of the telephony environment    The only concurrent programming model  available in Erlang is the actor‐model, being  today the de facto implementation and  reference for other implementations   

Hybrid programming language (FPL+OO)    created in 2003 at EPFL by Martin Odersky    It implements the actor‐model as a library, based  on the Erlang implementation    It compiles Java bytecodes and runs on top of a  JVM    Java code can be used on Scala programs  without any problem    Released as open‐source since its inception    www.scala‐ 

Framework used to create robust and massively    concurrent actor systems in Java, which claims  to be, at least, 3x faster than Erlang    It makes use of a bytecode post‐processor called  Weaver and a runtime library. Weaver ensures  that, through annotations on the bytecode:  1.  Threads will be ultra‐lightweight;  2.  Messages will be treated as a special, and much  simpler, category of Java objects; and  3.  Isolation is enforced on compile‐time 

  The Microsoft Concurrency and Coordination  Runtime and Decentralized Software Services  Toolkit comprises of “a set of .NET and .NET  Compact Framework class libraries and tools  that enable developers to better deal with the  inherent complexities in creating loosely‐ coupled concurrent and distributed  applications”    CCR is the foundation of Maestro, a DSL for  concurrency developed by MS Research 

The possible event scenarios, independently if the subscriber was in its    home network or in roaming (intra‐carrier or inter‐carrier), are:  Call to local fixed‐line number    Call to local wireless inter‐carrier number    Call to local wireless intra‐carrier number    Call to long‐distance fixed‐line number    Call to long‐distance wireless inter‐carrier number    Call to long‐distance wireless intra‐carrier number    Call to international fixed‐line number    Call to international wireless number    Incoming call    Text message to wireless inter‐carrier number    Text message to wireless intra‐carrier number    Text message to wireless international number    Incoming text message    Data session    

The rating of an event will be driven by parameters like:    Minimum unit of charge for voice calls (6 seconds)    Minimum unit of charge for text messages (150 characters)    Minimum unit of charge for data sessions (1 kilobyte)    Off‐peak periods (by hour range on days of the week and holidays)    Rate, per off/peak minute, for calls while in home network    Rate, per off/peak minute, for calls while in intra‐carrier roaming    Rate, per text message, for messages while in home network    Rate, per text message, for messages while in intra‐carrier roaming    Rate, per off/peak KB, for data sessions while in home network    Rate, per off/peak KB, for data sessions while in intra‐carrier roaming    Bucket of off/peak free minutes per subscription/account    Bucket of free text messages per subscription/account    Bucket of off/peak free data volume per subscription/account    All events that occurred while in inter‐carrier roaming are rated by the visited    carrier and a toll is charged by the home carrier 

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Actors in a new highly parallel world

Actors in a new highly parallel world on ResearchGate, the professional network for scientists.
Read more

List of Tales of Symphonia characters - Wikipedia, the ...

In Dawn of the New World, ... Regal removes his shackles and devotes his company to improving the world. His Japanese voice actor is Akio Ōtsuka.
Read more

The Internet Movie Database

... the world's most popular and authoritative source for movie, ... British actor Frank Finlay, ... New on TV Tonight.
Read more


“There are actors all over the world ... The Actors Studio in New York serves as the administrative headquarters for both the New York Actors Studio ...
Read more

Best 100 Actors | Top 100 Actors of All Time

List of the best 100 actors and actresses of all time as voted by regular people. Best 100 Actors ... Discuss This List In The Forums * NEW *
Read more

Actor - definition of actor by The Free Dictionary

Define actor. actor synonyms, actor pronunciation, actor translation, English dictionary definition of actor. n. 1. ... Word / Article; Starts with;
Read more

Adrian Grenier - IMDb

Adrian Grenier, Actor: Entourage. Adrian Grenier was born on July 10, 1976 in Santa Fe, New Mexico, ... 2013 Goodbye World James Palmer.
Read more

Famous Monkey King actor omitted from China's New Year ...

World News; Famous Monkey King actor omitted from China's New Year show; Famous Monkey King actor omitted from China's New Year show. ... Newsee New Zealand;
Read more