package util
Provides classes and objects for dealing with the simulation infrastructure.
Overview
Spark simulations
Use com.markblokpoel.lanag.util.SparkSimulation to create an instance of Spark running locally on your machine:
import com.markblokpoel.lanag.com.markblokpoel.lanag.coreg.util.LocalSparkSimulation import LocalSparkSimulation.spark.implicits._ val sequenceToBeParallelized = Seq(...) val rdd = LocalSparkSimulation.parallelize(sequenceToBeParallelized)
You can now RDD functions like org.apache.spark.rdd.RDD.flatMap() and
org.apache.spark.rdd.RDD.map() to apply transformations to the sequence.
rdd.map(a => a +1)
These will be executed lazily and in parallel. Until you write the results to file, or otherwise collect them, nothing will be executed. For a tutorial on Spark see the Apache Spark website https://spark.apache.org/docs/latest/quick-start.html.
Global number generators
The object com.markblokpoel.lanag.util.InteractionIdentifier is used in com.markblokpoel.lanag.core.Interaction to identify pairs of agents.
The object com.markblokpoel.lanag.util.RNG specifies a global random number generator. Implementations of com.markblokpoel.lanag.core.Interaction that use this object exclusive will be repeatable for specific RNG seeds.
- Alphabetic
- By Inheritance
- util
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class ConfigWrapper(conf: Config) extends Product with Serializable
-
case class
SparkSimulation(local: Boolean = false, cores: Int = 4) extends Product with Serializable
A Spark session utility wrapper.
A Spark session utility wrapper.
This session can be used to parallelize simulations. It requires the local machine to have a Spark driver installed, if used with flag
local = true. See the Apache Spark website https://spark.apache.org/downloads.html for installation instructions.- local
Flag to specify whether or not should run in local mode.
- cores
Number of cores to use in local mode, default is 4. Set to 0 to request maximum number of cores.
-
class
StreamingMap[K, V] extends Serializable
A lazy implementation of Map, where the values for each key of type
A lazy implementation of Map, where the values for each key of type
K
are specified by a function
valueFunc
of type
K => V. This implementation is mutable. If an element
key
is requested and its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
key }}} its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
K => V }}} its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
valueFunc }}} its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
K }}}
valueFunc
of type
K => V. This implementation is mutable. If an element
key
is requested and its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
key }}} its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
K => V }}} its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
valueFunc }}} its value is not yet computed, StreamingMap computes
valueFunc(key)
and stores the result. If the value has already been computed, then its simply returns the stored value.
valueFunc(key) }}} value has already been computed, then its simply returns the stored value.
- K
The parameter type of the keys.
- V
The parameter type of the values.
- Annotations
- @SerialVersionUID()
Value Members
- object DefaultMain extends App
-
object
InteractionIdentifier extends Product with Serializable
Global parameter for generating unique identifier numbers for interactions.
-
object
RNG
A global Random Number Generator.
A global Random Number Generator.
Can be used to generate random numbers of various types:
val p = RNG.nextProbability val i = RNG.nextInt(10) val b = RNG.nextBoolean
You can set the seed of the random number generator using:
RNG.setSeed(1024)If simulations use RNG exclusively, the results are the same if all parameters and the seed are the same.
Language Agents Simulation framework
For detailed documentation on using the framework please see the README.md file at the Github repository at https://github.com/markblokpoel/lanag-core.