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 Predictions Palladio John Simulator Data Analyst Off by 63 % Me Software BI Performance Performance Prediction System Engineer Results 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. M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 2
Idea and Process Common parallelisation patterns as easy to use architectural templates Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 3
Pattern Identification Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation
Parallel Loop Code example Software Parallelisation Repetitions Resource Demand John Data Analyst M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 5
Pattern Modelling Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation
Parallel Loop SEFF Example (Single Core) Software Model << loopAction >> rep = matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE << InternalAction >> calculationA Resource Demand ResourceDemands 0.00000069 * matrixASizeM.VALUE * << InternalAction >> matrixASizeN.VALUE * calculation Repetitions matrixBSizeJ.VALUE <CPU> ResourceDemands 0.00000069 <CPU> M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 7
Parallel Loop SEFF Example (2 Threads) Software Model << Fork >> ForkedBehaviours << Synchronisation Point >> << InternalAction >> << InternalAction >> Resource Demand calculationA calculationB ResourceDemands ResourceDemands 0.00000069 * matrixASizeM.VALUE * 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixASizeN.VALUE * Repetitions matrixBSizeJ.VALUE / 2 <CPU> matrixBSizeJ.VALUE / 2 <CPU> Parallelisation M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 8
Parallel Loop SEFF Example (18 Threads) Software Model << Fork >> ForkedBehaviours << Synchronisation Point >> Manual modelling overhead increase << InternalAction >> << InternalAction >> with each thread calculationA calculationB ResourceDemands ResourceDemands 0.00000069 * matrixASizeM.VALUE * 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> matrixBSizeJ.VALUE / 2 <CPU> M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 9
But, what we want to have… Software Model << loopAction >> @Parallel rep = matrixASizeM.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE Efficiency threadPooleSize = threadNumber Resource Demand << InternalAction >> calculation Repetitions ResourceDemands 0.00000069 <CPU> Parallelisation M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 10
Architectural Templates Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation
“Architectural Templates allow software architects to apply reusable patterns to their Palladio models.“ 3-Steps for AT 1 2 Define Stereotype OVT-o Lehrig, Sebastian Michael. Efficiently Conducting Quality-of-Service Analyses by Templating Architectural Knowledge . Vol. 25. KIT Scientific Publishing, 3 Add To Catalog 2018. M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 12
Accuracy Improvement Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation
Adding Overhead to Loop AT << loopAction >> Each thread needs additional @Parallel Software Model rep = matrixASizeM.VALUE * matrixASizeN.VALUE * resources to span and matrixBSizeJ.VALUE synchronize threadPooleSize = threadNumber overhead = threadPoolSize * 0.0000079 <CPU> overhead = 0.00078 * threadNumbers Accuracy Additional overhead due to << InternalAction >> communication or waiting calculation condition may occure ResourceDemands 0.00000069 <CPU> M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 14
Adding Overhead to Model << Fork >> ForkedBehaviours << Synchronisation Point >> Software Model << InternalAction >> << InternalAction >> calculationA calculationB ResourceDemands ResourceDemands Accuracy 0.00000069 * matrixASizeM.VALUE * 0.00000069 * matrixASizeM.VALUE * matrixASizeN.VALUE * matrixASizeN.VALUE * matrixBSizeJ.VALUE / 2 <CPU> matrixBSizeJ.VALUE / 2 <CPU> << InternalAction >> overhead ResourceDemands overhead <CPU> M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 15
Limitations & Future Work
Limitations & Future Work Limitations Future Work MPI and ACTORS Equal workload Reference curves for different resource demands Only OpenMP-like Abstraction to architectural level Estimation of Include addition overhead function properties in Simulations M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 17
The Problem with Palladio and Parallelism Manual Modelling Overhead Performance Inaccurate Model Predictions Palladio John Simulator Data Analyst Off by 63 % Me Software BI Performance System Performance Prediction Engineer Results M. Frank - Symposium on Software Performance 2018 - An Architectural Template for Parallel Loops 08.11.18 18
Institut für Softwaretechnologie Reliable Software Systems Thank you! Markus Frank E-Mail markus.frank@informatk.uni-stuttgart.de Telefon +49 (0) 711 685- 88272 iste.uni-stuttgart.de/rss.html www. Universität Stuttgart Reliable Software Systems Universitätsstraße 38, 70569 Stuttgart, Germany
Recommend
More recommend