from argparse import ArgumentParser
import sys
-from simgrid import Engine, Operation, ExecOp, IoOp, IoOpType
+from simgrid import Engine, Task, ExecTask, IoTask, IoOpType
def parse():
parser = ArgumentParser()
)
return parser.parse_args()
-def callback(op):
- print(f'[{Engine.clock}] Operation {op} finished ({op.count})')
+def callback( t):
+ print(f'[{Engine.clock}] { t} finished ({ t.count})')
if __name__ == '__main__':
args = parse()
e = Engine(sys.argv)
e.load_platform(args.platform)
- Operation.init()
+ Task.init()
# Retrieve hosts
bob = e.host_by_name('bob')
carl = e.host_by_name('carl')
- # Create operations
- exec1 = ExecOp.init("exec1", 1e9, bob)
- exec2 = ExecOp.init("exec2", 1e9, carl)
- write = IoOp.init("write", 1e7, bob.disks[0], IoOpType.WRITE)
- read = IoOp.init("read", 1e7, carl.disks[0], IoOpType.READ)
+ # Create tasks
+ exec1 = ExecTask.init("exec1", 1e9, bob)
+ exec2 = ExecTask.init("exec2", 1e9, carl)
+ write = IoTask.init("write", 1e7, bob.disks[0], IoOpType.WRITE)
+ read = IoTask.init("read", 1e7, carl.disks[0], IoOpType.READ)
- # Create the graph by defining dependencies between operations
+ # Create the graph by defining dependencies between tasks
exec1.add_successor(write)
write.add_successor(read)
read.add_successor(exec2)
- # Add a function to be called when operations end for log purpose
- Operation.on_end_cb(callback)
+ # Add a function to be called when tasks end for log purpose
+ Task.on_end_cb(callback)
- # Enqueue two executions for operation exec1
+ # Enqueue two executions for task exec1
exec1.enqueue_execs(2)
# runs the simulation