Git Product home page Git Product logo

actorgpu's Introduction

ActorGPU

What is it?

ActorGPU is an actor-model form on concurrency for the GPU. It uses actor models as a way to simulate concurrency between highly-similar actors. This approach to concurrency allows us to more easily model agent-based modelling on the GPU

##How do I use it?

Easy:

(Code samples coming soon)

How is this code structured

###Actors You should be able to subclass actors. Actors are an interface within our system, so when subclassing, you MUST implement a "react" method. Actors should have a message box within them, or some sense of getting valuable data from others. This can also be in a public method/private data source, as implemented in some forms of Scala code.

###SchellingActor SchellingActor is an example of a sub-classing of an Actor. SchellingActor has two private variables: a type and a number of adjacent actors to it. SchellingActor has a threshold before it changes places. If there are three or more different around it, then it must change places to a random location on the board.

###MapActor MapActor is a subclass of Actor. MapActor keeps track of locations occupied by Actors, and free spaces. MapActor manages positioning of Actors. MapActor has a public methods freeSpaces() and occupiedSpaces(). These should run kernels to generate an array containing listings of free and occupied spaces, respectively. These are used to determine where to move SchellingActors. MapActor should deal with receiving signals from SchellingActors telling MapActor they're uncomfortable living in the current situation. When this is received, an atomicCAS should be used to swap positions of SchellingActors around a board.

###!!! ActorSystem ActorSystem is a generic form of the list of Actors living in a system. ActorSystem should allow us to be able to find Actors within our system and store them in a sane way ActorSystem lets us run each Actor's send/receive functions while syncing threads in between.

###Main Main lets us:

Come up with an ActorSystem

Add MapActors and SchellingActors to our ActorSystem

Run the simulation of having a MapActor keep track of each SchellingActor, and parallelizing the sort algorithm of these Actors.

actorgpu's People

Contributors

mdaiter avatar rcorcs avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.