[palladio-dev] [I43-doktoranden] Simulate load balancing strategies using SimuLizar

Christian Stier stier at fzi.de
Tue May 22 18:43:01 CEST 2018

Hi Patrick,

There are several approaches you can take to handle the placement of future jobs/VMs/workloads/... . Will briefly sketch two potential approaches.

1. Register a simulation extension that schedules simulation placement events as you had described. You could implement this as part of a plugin that registers to the extension point org.palladiosimulator.simulizar.modelobserver.exsd and register additional measurement events via the interfaces of AbstractSimulizarRuntimeState. As a prerequisite, you would want to register your scheduling event model via org.palladiosimulator.simulizar.modelobserver.exsd.

2. Use asynchronous adaptation actions to execute/interpret the scheduling events. This is what we did in CACTOS: https://github.com/cactos/Cactos-Prediction/blob/master/eu.cactosfp7.cactosim.vmi.controller.transformations/transformations/processexperimentscenario.qvto .
When following this approach, you process all events in your scheduling timeline in a reconfiguration at the start of the experiment and schedule them at a future point in time. That is what lines 124 ff. do. The cryptic actionId references any of the adaptation action types in the CACTOS Action repository: https://github.com/cactos/Cactos-Prediction/blob/master/eu.cactosfp7.cactosim.action.repository/model/cactos_repository.actions . The repository includes, among others, IDs for initial placement, termination, migration and other data center management operation.

Both approaches are realizable. The best solution in terms of scalability would be 1., although our approach 2. still was sufficient for hundreds to low thousands of VMs. We opted for 2. as it allowed us to reuse the same reconfiguration transformation logic for initial placement and autonomic adaptation decisions executed by continuously executed optimization algorithms.

Best regards

 -----Original Message-----
From: Christian Stier <stier at ira.uka.de> On Behalf Of Patrick Firnkes
Sent: Tuesday, May 22, 2018 4:42 PM
To: palladio-dev at ira.uni-karlsruhe.de
Subject: [I43-doktoranden] [palladio-dev] Simulate load balancing strategies using SimuLizar


I want to simulate different load balancing strategies using SimuLizar.
This strategies depend on the  runtime state of the model, such as the already running jobs on a resource container.
However, I'm not entirely sure how this could be implemented, because I'm not that familiar with SimuLizar's internals yet.

My approach would be to use the reconfiguration feature of Simulizar. 
The reconfiguration transformations
are triggered by measuring points, right? So I would have to create measuring points for component start/end, can this be done?

When the transformation is triggered it has to retrieve all running components, find the best fitting resource container, and start the component on this resource container. Is this possible?
If there is no suitable resource container available, I want to put the component into a queue, and submit it to a resource container later.

Do you think that this is realisable or is it the wrong approach?

Thank you for your help,

Palladio-Bench developer mailing list. News and discussions on the Palladio software architecture simulator and related tooling projects.
palladio-dev at ira.uni-karlsruhe.de
I43-doktoranden mailing list
I43-doktoranden at ira.uni-karlsruhe.de

More information about the palladio-dev mailing list