an a rchitectural t emplate for parallel loops and
play

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


  1. An A rchitectural T emplate for Parallel Loops and Sections Symposium on Software Performance 2018 Markus Frank & Alireza Hakamian

  2. 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

  3. 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

  4. Pattern Identification Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation

  5. 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

  6. Pattern Modelling Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation

  7. 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

  8. 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

  9. 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

  10. 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

  11. Architectural Templates Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation

  12. “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

  13. Accuracy Improvement Pattern Pattern A rchitectural Accuracy Identification Modelling T emplate Improvement (Code) (Palladio) Creation

  14. 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

  15. 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

  16. Limitations & Future Work

  17. 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

  18. 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

  19. 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend