Simulations in N2S3 are organized as a set of actors from the akka library, an implementation of the actor model. This actor model is a concurrency model that proposes that concurrency is managed actors: objects that encapsulate their internal state and communicate via asynchronous message passing. That is, an object sends a message to another object but it does not block waiting for an answer. This model has the following main properties:
This allows actors to be executed in parallel with not much constraints.
While communications between actors is asynchronous, within an actor a program executes in the usual sequential manner of a scala program.
This model was chosen for N2S3 since it has good scalability and distribution properties that can be applied to a neural network.
Deploying a N2S3 simulation takes several steps. This happens because users configure a neural network, but that neural network may be deployed in the same or different actors, in the same or different machines. A summary of these stages is as follows:
As you can see, a simulation has four main steps:
The rest of the documentation is organized from this topics. If you're willing to contribute we recommend you read them in the proposed order (from concrete to abstract) as follows:
Other topics: