230 likes | 361 Views
Multicriteria Driven Resource Management Strategies in GRMS. Krzysztof Kurowski, Jarek Nabrzyski, Ariel Oleksiak, Juliusz Pukacki Poznan Supercomputing and Networking Center, Poland. Resource management strategies. Grid Computing. GRMS Architecture. GRMS as a part of the GridLab.
E N D
Multicriteria Driven Resource Management Strategies in GRMS Krzysztof Kurowski, Jarek Nabrzyski, Ariel Oleksiak, Juliusz Pukacki Poznan Supercomputing and Networking Center, Poland
Resource management strategies Grid Computing The 4th Cracow Grid Workshop -CGW
GRMS Architecture The 4th Cracow Grid Workshop -CGW
GRMS as a part of the GridLab The 4th Cracow Grid Workshop -CGW
GRMS as a part of the GridLab The 4th Cracow Grid Workshop -CGW
Introduction to MC • Motivation • GRMS is a solution for non-dedicated resources • We consider a resource management problem as a multicriteriadecision making process with various stakeholders (end-users, administrators, etc.) • Different preferences of stakeholders (sets of criteria and their importance) • We need to aggregate somehow (negotiation and agreement processes are required) various criteria and stakeholders’ preferences • We focus on a compromise solution rather than the optimal one • We want to satisfy many stakeholders rather than the particular one • Various criteria and constraints depending on available information and scenarios • Requirements • Flexibility (in terms of criteria and multicriteria methods) • Re-use of common functionality (ranking, non-dominated solutions, solutions meeting constraints) The 4th Cracow Grid Workshop -CGW
Introduction to MC • MCEvaluator • Implementation of needed multicriteria models and tools • Set of classes providing abstraction of entities used in multicriteria models • Job description/properties • Including user’s and administrator preferences • Taking into consideration multiple criteria, their importance, indifference thresholds and constraints • Two main efforts • Multi-criteria analysis engine – MCEvaluator • Including user’s preferences in a job description The 4th Cracow Grid Workshop -CGW
MCEvaluator - Design The 4th Cracow Grid Workshop -CGW
MCEvaluator - Model • Main entities • Criteria (objectives, soft constraints: user is interested in their greatest or lowest possible values) • Constraints (hard constraints: if is not satisfied solution is not taken into consideration) • Solutions (e.g. resources, schedules etc. along with description parameters) • MCEvaluator (decision point) • Multi-criteria methods • Evaluation function (e.g. weighted sum) • Non-dominated solutions • Lexicographic order • Rule-based systems • Other ... The 4th Cracow Grid Workshop -CGW
Simple example End user 1 End user 2 Application 1 (e.g. Data analysis ) Application 2 (e.g. Data mining) Hard constraints (e.g. RSL… ClassAd, scripts) <Mem = 100MB>, <Storage = 1G> Memory Memory ??? ??? R1 R1 R2 R2 R3 R3 R4 R4 Storage Storage The 4th Cracow Grid Workshop -CGW
Simple example End user 1 End user 2 Application 1 (e.g. Data analysis ) Application 2 (e.g. Data mining) MAXZ = 1*Mem + 2*Storage (where z is the objective function) MAXZ = 2*Mem + 1*Storage (where z is the objective function) Memory Memory R1 R1 R2 R2 R3 R3 R4 R4 Storage Storage The 4th Cracow Grid Workshop -CGW
Job Description • Expressing user preferences • Criteria (I want as fast CPU as possible) • Weights (amount of memory is two times more important than a number of processors) • Constraints (amount of free memory must be greater than x) • Indifference thresholds (difference of 10MB is not significant) The 4th Cracow Grid Workshop -CGW
Job Description- Schema <constraints><resConstraint parameter=„MEMORY"><constraintModel preferenceType="PRIORITY" optimizationType="GAIN"> <indiffThreshold>10</indiffThreshold> <value>1</value></constraintModel><constraintValue><min indiffThreshold="0">100</min><max indiffThreshold=„20">200</max></constraintValue> </resConstraint></constraints> The 4th Cracow Grid Workshop -CGW
Examples • Selection of the best hosts for a job • Based on hosts parameters: CPU load, total memory, free memory, CPU count, CPU speed • Selection of the best host or the best queue • Based on estimated runtime and queue waiting time (+ estimated errors) taken from the prediction system • Selection of the best job to migrate (to release resources for a new job) • Based on parameters of the host after job migration and migration costs • Selection of the best queue in the local resource management system • Based on aggregated historical data taken from the GridLab Adaptive Service (Delphoi) The 4th Cracow Grid Workshop -CGW
Selection of the best hosts for a job The 4th Cracow Grid Workshop -CGW
Criteria CPU load CPU count CPU speed Total memory Free memory Constraints No constraints (resources filtered in the resource discovery phase) Solutions Set on the basis of parameters describing hosts //criteria NumericalCriterion[] criteria = new NumericalCriterion[5]; criteria[0] = new NumericalCriterion("cpuLoad", Criterion.GAIN); criteria[1] = new NumericalCriterion("cpuCount", Criterion.GAIN); criteria[2] = new NumericalCriterion("cpuSpeed", Criterion.GAIN); criteria[3] = new NumericalCriterion("memory", Criterion.GAIN); criteria[4] = new NumericalCriterion("memAvail", Criterion.GAIN); // //weights float[] weights = new float[5]; weights[0] = weightLoad; weights[1] = weightCPUCount; weights[2] = weightCPUSpeed; weights[3] = weightMemory; weights[4] = weightMemAvail; //evaluator mcEvaluators = new Vector(1); mcEvaluators.add(new MCFuncEvaluator("GRMSmatchmaking", criteria, weights, null)); Example 1 (Host Parameters) The 4th Cracow Grid Workshop -CGW
Selection of the best host or the best queue The 4th Cracow Grid Workshop -CGW
Criteria Time Error Standard Deviation Maximal – minimal time Constraints err <= stdev stdev < time/2 max-min <= time (+- 1 minute) Solutions Set on the basis of information from the prediction system //criteria NumericalCriterion[] criteriaMCT = new NumericalCriterion[4]; criteriaMCT[0] = new NumericalCriterion("time", Criterion.COST); criteriaMCT[0].setIndiffThreshold(1); criteriaMCT[1] = new NumericalCriterion("err", Criterion.COST); criteriaMCT[2] = new NumericalCriterion("stdev", Criterion.COST); criteriaMCT[3] = new NumericalCriterion("max-min", Criterion.COST); criteriaMCT[3].setIndiffThreshold(1); // //weights float[] weightsMCT = new float[4]; weightsMCT[0] = weightTime; weightsMCT[1] = weightErr; weightsMCT[2] = weightStdev; weightsMCT[3] = weightMaxMin; //constraints MetricConstraint[] constraintsMCT = new MetricConstraint[3]; //err <= stdev constraintsMCT[0] = new MetricConstraint("err", MetricConstraint.LE, null); constraintsMCT[0].setOtherMetric("stdev"); //stdev < time/2 constraintsMCT[1] = new MetricConstraint("stdev", MetricConstraint.LS, null); constraintsMCT[1].setOtherMetric("time"); constraintsMCT[1].setOtherMetricFactor(0.5f); //max-min <= time (+- 1) constraintsMCT[2] = new MetricConstraint("max-min", MetricConstraint.LE, null); constraintsMCT[2].setOtherMetric("time"); constraintsMCT[2].setIndiffThreshold(1); Example 2 (Time Prediction) The 4th Cracow Grid Workshop -CGW
Selection of the best job to migrate (to release resources for a new job) The 4th Cracow Grid Workshop -CGW
Criteria avgNumberWaitingJobs avgJobWaitingTime sdJobWaitingTime avgFreeNodes cpuTime maxJobs maxNodes Constraints cpuTime maxJobs maxNodes Solutions Set on the basis of information from the adaptive service // based on historic information (dynamic parameters) criteria[0] = new NumericalCriterion("avgNumberWaitingJobs", Criterion.COST); criteria[1] = new NumericalCriterion("avgJobWaitingTime", Criterion.COST); criteria[2] = new NumericalCriterion("sdJobWaitingTime", Criterion.COST); criteria[3] = new NumericalCriterion("avgFreeNodes", Criterion.GAIN);// based on queue configuration (static parameters) criteria[4] = new NumericalCriterion("cpuTime", Criterion.GAIN); criteria[5] = new NumericalCriterion("cpus", Criterion.GAIN); criteria[6] = new NumericalCriterion("maxJobs", Criterion.GAIN); criteria[7] = new NumericalCriterion("maxMem", Criterion.GAIN); criteria[7] = new NumericalCriterion("maxNodes", Criterion.GAIN); Example 3 (Adaptive Service) The 4th Cracow Grid Workshop -CGW
MCEvaluator – Next Steps • Development of the engine • Implementation of other multi-criteria methods • Negotiable constraints • Use in another scenarios • Use of other decision models (currently the evaluation function) • Scheduling with advance reservation • Resource co-allocations • Other ? The 4th Cracow Grid Workshop -CGW
Conclusion • Flexible engine for criteria and constraintsmanagement – various: • criteria • constraints • decision making methods • Used in a few scenarios/testbeds • Currently multi-criteria evaluation function • Job description containing user preferences • Criteria (+ their importance) and constraints • It would be nice to use • Criteria in agreement negotiations • Criteria concerning deadlines, runtimes etc. The 4th Cracow Grid Workshop -CGW
GRMS web page www.gridlab.org/grms/ Thank you! The 4th Cracow Grid Workshop -CGW