39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from datetime import datetime
|
|
|
|
from cadCAD import configs
|
|
from cadCAD.configuration.utils import config_sim
|
|
from cadCAD.engine import ExecutionMode, ExecutionContext, Executor
|
|
|
|
from distroduce.simulation import main, sim_composition
|
|
from distroduce.spark.session import sc
|
|
from distroduce.executor.spark import distributed_produce
|
|
|
|
if __name__ == "__main__":
|
|
# Initial States
|
|
initial_conditions = {
|
|
'record_creation': datetime.now(),
|
|
'client_a': {'users': [], 'messages': [], 'msg_count': 0, 'send_time': 0.0},
|
|
'client_b': {'users': [], 'messages': [], 'msg_count': 0, 'send_time': 0.0},
|
|
'total_msg_count': 0,
|
|
'total_send_time': 0.000000
|
|
}
|
|
|
|
'''
|
|
Simulation Configuration:
|
|
N = Simulation Runs
|
|
T = Timesteps for each Partial State Update Block
|
|
'''
|
|
sim_config = config_sim(
|
|
{
|
|
"N": 1,
|
|
"T": range(5000),
|
|
}
|
|
)
|
|
|
|
exec_mode = ExecutionMode()
|
|
kafkaConfig = {'send_topic': 'test', 'producer_config': {'bootstrap_servers': f'{sys.argv[1]}:9092', 'acks': 'all'}}
|
|
dist_proc_ctx = ExecutionContext(context=exec_mode.dist_proc, method=distributed_produce, kafka_config=kafkaConfig)
|
|
run = Executor(exec_context=dist_proc_ctx, configs=configs, spark_context=sc)
|
|
|
|
main(run, sim_config, initial_conditions, sim_composition)
|