An A rchitectural T emplate for Parallel Loops and Sections - - PowerPoint PPT Presentation

an a rchitectural t emplate for parallel loops and
SMART_READER_LITE
LIVE PREVIEW

An A rchitectural T emplate for Parallel Loops and Sections - - PowerPoint PPT Presentation

An A rchitectural T emplate for Parallel Loops and Sections Symposium on Software Performance 2018 Markus Frank & Alireza Hakamian The Problem with Palladio and Parallelism Manual Modelling Overhead Performance Inaccurate Model


slide-1
SLIDE 1

An Architectural Template for Parallel Loops and Sections

Symposium on Software Performance 2018 Markus Frank & Alireza Hakamian

slide-2
SLIDE 2

Manual Modelling Overhead

08.11.18

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops

2

The Problem with Palladio and Parallelism

John Data Analyst Me Software Performance Engineer Palladio Simulator

BI System Performance Model

Performance Prediction Results Inaccurate Predictions

Off by 63 %

  • M. Frank and M. Hilbrich. “Performance Prediction for Multicore Environments—An Experiment

Report”. In: Proceedings of the Symposium on Software Performance 2016, Kiel, Germany Frank, M., Staude, S. & Hilbrich, M. Is the PCM Ready for ACTORs and Multicore CPUs? - A Use Case-based Evaluation. In Proceedings of the Symposium on Software Performance 2017, Karlsruhe, Germany.

slide-3
SLIDE 3

08.11.18

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops

3

Idea and Process

Pattern Identification (Code) Pattern Modelling (Palladio) Accuracy Improvement Architectural Template Creation Common parallelisation patterns as easy to use architectural templates

slide-4
SLIDE 4

Pattern Identification

Pattern Identification (Code) Pattern Modelling (Palladio) Accuracy Improvement Architectural Template Creation

slide-5
SLIDE 5

Code example Parallel Loop

Resource Demand Repetitions Parallelisation Software

08.11.18 5

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops

John Data Analyst

slide-6
SLIDE 6

Pattern Modelling

Pattern Identification (Code) Pattern Modelling (Palladio) Accuracy Improvement Architectural Template Creation

slide-7
SLIDE 7

<< loopAction >> rep = matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE ResourceDemands 0.00000069 <CPU> << InternalAction >> calculation

SEFF Example (Single Core) Parallel Loop

Resource Demand Repetitions

08.11.18 7

Software Model

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops

ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE <CPU> << InternalAction >> calculationA

slide-8
SLIDE 8

SEFF Example (2 Threads) Parallel Loop

Resource Demand Repetitions

<< Fork >> ForkedBehaviours << Synchronisation Point >> ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> calculationA ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> calculationB

Parallelisation

08.11.18 8

Software Model

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops
slide-9
SLIDE 9

Manual modelling

  • verhead increase

with each thread

SEFF Example (18 Threads) Parallel Loop

<< Fork >> ForkedBehaviours << Synchronisation Point >> ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> calculationA ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> calculationB 08.11.18 9

Software Model

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops
slide-10
SLIDE 10

But, what we want to have…

<< loopAction >> @Parallel rep = matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE threadPooleSize = threadNumber ResourceDemands 0.00000069 <CPU> << InternalAction >> calculation

Resource Demand Repetitions Parallelisation

08.11.18 10

Efficiency Software Model

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops
slide-11
SLIDE 11

Architectural Templates

Pattern Identification (Code) Pattern Modelling (Palladio) Accuracy Improvement Architectural Template Creation

slide-12
SLIDE 12

3-Steps for AT

1

Define Stereotype

2

OVT-o

3

Add To Catalog

08.11.18 12 Lehrig, Sebastian Michael. Efficiently Conducting Quality-of-Service Analyses by Templating Architectural Knowledge. Vol. 25. KIT Scientific Publishing, 2018.

“Architectural Templates allow software architects to apply reusable patterns to their Palladio models.“

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops
slide-13
SLIDE 13

Accuracy Improvement

Pattern Identification (Code) Pattern Modelling (Palladio) Accuracy Improvement Architectural Template Creation

slide-14
SLIDE 14

<< loopAction >> @Parallel rep = matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE threadPooleSize = threadNumber

  • verhead = 0.00078 * threadNumbers

ResourceDemands 0.00000069 <CPU> << InternalAction >> calculation

Adding Overhead to Loop AT

08.11.18 14

Software Model Accuracy

Each thread needs additional resources to span and synchronize Additional overhead due to communication or waiting condition may occure

  • verhead = threadPoolSize * 0.0000079 <CPU>
  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops
slide-15
SLIDE 15

<< Fork >> ForkedBehaviours << Synchronisation Point >> ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> calculationA ResourceDemands 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> calculationB ResourceDemands

  • verhead <CPU>

<< InternalAction >>

  • verhead

Adding Overhead to Model

08.11.18 15

Software Model Accuracy

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops
slide-16
SLIDE 16

Limitations & Future Work

slide-17
SLIDE 17

08.11.18

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops

17

Limitations & Future Work

Equal workload Limitations Only OpenMP-like Estimation of

  • verhead function

Future Work MPI and ACTORS Reference curves for different resource demands Include addition properties in Simulations Abstraction to architectural level

slide-18
SLIDE 18

Manual Modelling Overhead

08.11.18

  • M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops

18

The Problem with Palladio and Parallelism

John Data Analyst Me Software Performance Engineer Palladio Simulator

BI System Performance Model

Performance Prediction Results Inaccurate Predictions

Off by 63 %

slide-19
SLIDE 19

Thank you!

E-Mail Telefon +49 (0) 711 685- www. Universität Stuttgart Universitätsstraße 38, 70569 Stuttgart, Germany Markus Frank 88272 Reliable Software Systems markus.frank@informatk.uni-stuttgart.de Institut für Softwaretechnologie Reliable Software Systems iste.uni-stuttgart.de/rss.html