PerOpteryx/Hybrid Optimization Case Study 2012

Aus SDQ-Wiki
Zur Navigation springen Zur Suche springen

This pages gives more detail on the BRS case study for the hybrid optimisation approach with analytic optimisation and PerOpteryx. Check out the PerOpteryx page for details on the tool. Version 3.3 of the PCM and version 1.0 of PerOpteryx were used to conduct the case study.

BRS model details

The example system is the so-called business reporting system (BRS), which lets users retrieve reports and statistical data about running business processes from a data base. It is loosely based on a real system by Wu et al.. The Figure below shows some parts of the PCM model of the BRS visualised using annotated UML diagrams. It is a 4-tier system consisting of several software components. The components are allocated on four different servers. In an open workload usage scenario, requests arrive according to a Poisson process with an arrival rate of 0.1 req/sec. For each request, users first use the ``graphicalReport service and then the ``graphicalView service of the system.

See the PCM model for details.

Server configuration

For the evolutionary optimization, the processing rates can be freely varied between 1GHz and 4GHz. The costs of each server are based on Intel's CPU price list \cite{intel2010a}. We fitted a power function to this data, so that the resulting costs of one server is

cost = 0.7665 * processingRate^(6.2539) + 145

with a coefficient of determination R^2 = 0.965.

For the analytical optimization, the server configurations are shown in the table below.

Configuration Processor Speed PR Availability HA Cost HCost
C_1 1 GHz 0.99986 145
C_2 2 GHz 0.99993 155
C_3 3 GHz 0.99995 267
C_4 4 GHz 0.99997 884

Component Allocation

For the evolutionary optimization, all used components except the Webserver and the Database can be freely allocated to the four servers. The Webserver cannot be reallocated (e.g. for security reasons), the Database can only be allocated to servers S_1 or S_3. For the analytic optimization, we consider three allocation degrees of freedom: (1) The GraphicalReporting component can be allocated to servers S_1 to S_4, (2) the Cache component can be allocated to servers S_1 to S_4, and (3) the Database component can be allocated to servers S_1 or S_3.

The figure below shows the modelling of the allocation degree of freedom for the GraphicalReporting component.

Allocation of the Graphical Reporting component.

Component Selection

The Webserver can be realised using third party components. The software architect can choose among three functional equivalent implementations: Webserver2 with cost 4 and Webserver3 with cost 6. Both have less resource demand than the initial Webserver. Webserver2 has better availability for the requests of type "view", while Webserver3 has better availability for the requests of type "report".

Check the section on the PCM model below for resource demands and availability values.

PCM models

You can download the Datei:BRS PCM model Hybrid Optimisation 2012 rev 15854.zip and open it with the 3.3 version of the PCM tools and PerOpteryx. See PCM 3.3 for details how to install and use the PCM. You find a Run Configuration entry named PCM Design Space Exploration for PerOpteryx. You can also inspect the model files with an XML editor, if you like. See PerOpteryx for more information on the evolutionary optimisation tool.

The SVN is located at https://svnserver.informatik.kit.edu/i43/svn/code/CaseStudies/PalladioModels/PCM3.3_BRS_Optimisation_Heuristics at revision 15854.

Mapping to the Analytical Optimization

Directed Acyclic Graph

The figures below show the directed acyclic graph of the BRS behaviour for this usage.

PerOpteryx Hybrid 2012 Graphical Report Tasks.png PerOpteryx Hybrid 2012 Graphical View Tasks.png

Decision Variables

The first 36 decision variables are shown below.

x description
1 CPU server S1 downgraded from 10.0 to 5.0 Ghz
2 CPU server S1 upgraded from 10.0 to 15.0 Ghz
3 CPU server S1 upgraded from 10.0 to 20.0 Ghz
4 CPU server S2 downgraded from 10.0 to 5.0 Ghz
5 CPU server S2 upgraded from 10.0 to 15.0 Ghz
6 CPU server S2 upgraded from 10.0 to 20.0 Ghz
7 CPU server S3 downgraded from 10.0 to 5.0 Ghz
8 CPU server S3 upgraded from 10.0 to 15.0 Ghz
9 CPU server S3 upgraded from 10.0 to 20.0 Ghz
10 CPU server S4 downgraded from 10.0 to 5.0 Ghz
11 CPU server S4 upgraded from 10.0 to 15.0 Ghz
12 CPU server S4 upgraded from 10.0 to 20.0 Ghz
13 Component webserver on server S1 replaced by component webserver2
14 action#13 + CPU server S1 downgraded from 10.0 to 5.0 Ghz
15 action#13 + CPU server S1 upgraded from 10.0 to 15.0 Ghz
16 action#13 + CPU server S1 upgraded from 10.0 to 20.0 Ghz
17 Component webserver on server S1 replaced by component webserver3
18 action#17 + CPU server S1 downgraded from 10.0 to 5.0 Ghz
19 action#17 + CPU server S1 upgraded from 10.0 to 15.0 Ghz
20 action#17 + CPU server S1 upgraded from 10.0 to 20.0 Ghz
21 Components moved from server: S2 Component GraphicalReporting moved to server S1
22 action#21 + CPU server S1 downgraded from 10.0 to 5.0 Ghz
23 action#21 + CPU server S1 upgraded from 10.0 to 15.0 Ghz
24 action#21 + CPU server S1 upgraded from 10.0 to 20.0 Ghz
25 action#21 + CPU server S2 downgraded from 10.0 to 5.0 Ghz
26 action#21 + CPU server S2 downgraded from 10.0 to 5.0 Ghz + CPU server S1 downgraded from 10.0 to 5.0 Ghz
27 action#21 + CPU server S2 downgraded from 10.0 to 5.0 Ghz + CPU server S1 upgraded from 10.0 to 15.0 Ghz
28 action#21 + CPU server S2 downgraded from 10.0 to 5.0 Ghz + CPU server S1 upgraded from 10.0 to 20.0 Ghz
29 action#21 + CPU server S2 upgraded from 10.0 to 15.0 Ghz
30 action#21 + CPU server S2 upgraded from 10.0 to 15.0 Ghz + CPU server S1 downgraded from 10.0 to 5.0 Ghz
31 action#21 + CPU server S2 upgraded from 10.0 to 15.0 Ghz + CPU server S1 upgraded from 10.0 to 15.0 Ghz
32 action#21 + CPU server S2 upgraded from 10.0 to 15.0 Ghz + CPU server S1 upgraded from 10.0 to 20.0 Ghz
33 action#21 + CPU server S2 upgraded from 10.0 to 20.0 Ghz
34 action#21 + CPU server S2 upgraded from 10.0 to 20.0 Ghz + CPU server S1 downgraded from 10.0 to 5.0 Ghz
35 action#21 + CPU server S2 upgraded from 10.0 to 20.0 Ghz + CPU server S1 upgraded from 10.0 to 15.0 Ghz
36 action#21 + CPU server S2 upgraded from 10.0 to 20.0 Ghz + CPU server S1 upgraded from 10.0 to 20.0 Ghz

The exclusive sets among these variables are:

  • Changes of server S_1: es_1 = 1 + 2 + 3 + 13 + ... + 36
  • Changes of server S_2: es_2 = 4 + 5 + 6 + 21 + ... + 36
  • Changed of server S_3: es_3 = 7 + 8 + 9
  • Changed of server S_3: es_4 = 10 + 11 + 12

The Datei:PerOpteryx Hybrid 2012 Complete Alternatives and Exclusive Sets.txt sets can be downloaded as a text file.

References