![Page 1: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/1.jpg)
KIT – The Research University in the Helmholtz Association
Hartwig Anzt, Terry Cojean, Goran Flegar, Thomas Grűtzmacher, Pratik Nayak, Tobias RibizelSteinbuch Centre for Computing (SCC)
www.kit.edu
AnAutomatedPerformanceEvaluationFrameworkfortheGinkgoSoftwareEcosystem
GAMM,February18th- 22nd,2019
MovingtowardsContinuousBenchmarking(CB)
![Page 2: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/2.jpg)
GAMM20192 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Developer
A Healthy Software Development Cycle
![Page 3: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/3.jpg)
GAMM20193 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Developer
A Healthy Software Development Cycle
SourceCodeRepository
Push
• Versioncontrolsystemfortrackingchangesandcoordinatingcollaborativedevelopment.
![Page 4: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/4.jpg)
GAMM20194 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
Push
• Versioncontrolsystemfortrackingchangesandcoordinatingcollaborativedevelopment.
• CIBuildsystemcontinuously checksthecompilationsuccessondifferentarchitectures.
![Page 5: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/5.jpg)
GAMM20195 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
• Versioncontrolsystemfortrackingchangesandcoordinatingcollaborativedevelopment.
• CIBuildsystemcontinuously checksthecompilationsuccessondifferentarchitectures.
• Unittestsensurefunctionalityandvalidityofallbuildingblocks.
![Page 6: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/6.jpg)
GAMM20196 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
• Versioncontrolsystemfortrackingchangesandcoordinatingcollaborativedevelopment.
• CIBuildsystemcontinuously checksthecompilationsuccessondifferentarchitectures.
• Unittestsensurefunctionalityandvalidityofallbuildingblocks.
• Goal:Automatedbenchmarkrunseverytimenewcodeisadded.
![Page 7: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/7.jpg)
GAMM20197 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
• Versioncontrolsystemfortrackingchangesandcoordinatingcollaborativedevelopment.
• CIBuildsystemcontinuously checksthecompilationsuccessondifferentarchitectures.
• Unittestsensurefunctionalityandvalidityofallbuildingblocks.
• Goal:Automatedbenchmarkrunseverytimenewcodeisadded.
![Page 8: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/8.jpg)
GAMM20198 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
SecurityThrust!• ExternalcodeisrunonHPCsystem• Possiblepointofattack
• Versioncontrolsystemfortrackingchangesandcoordinatingcollaborativedevelopment.
• CIBuildsystemcontinuously checksthecompilationsuccessondifferentarchitectures.
• Unittestsensurefunctionalityandvalidityofallbuildingblocks.
• Goal:Automatedbenchmarkrunseverytimenewcodeisadded.
![Page 9: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/9.jpg)
GAMM20199 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
CodeReview
TrustedReviewer
MergeintoMasterBranch
• ManualcodereviewsbytrustedreviewerswhotakeresponsibilityforexecutingcodeontheHPCsystem.
![Page 10: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/10.jpg)
GAMM201910 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
CodeReview
TrustedReviewer
MergeintoMasterBranch
• ManualcodereviewsbytrustedreviewerswhotakeresponsibilityforexecutingcodeontheHPCsystem.
• Howtoarchivetheresultsandmakethemaccessible?
![Page 11: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/11.jpg)
GAMM201911 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
CodeReview
TrustedReviewer
MergeintoMasterBranch
PerformanceDataRepository
• Storedatainseparaterepository.• UseJSONdataexchangeformat.
![Page 12: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/12.jpg)
GAMM201912 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
ContinuousIntegration(CI)
CIBuild
Developer
A Healthy Software Development Cycle
SourceCodeRepository
PushCITest
Schedule inBatchSystem
HPCSystem
CIBenchmarkTests
CodeReview
TrustedReviewer
MergeintoMasterBranch
PerformanceDataRepository
Users
• Storedatainseparaterepository.• UseJSONdataexchangeformat.• Cloningahugerepository is
expensive.• ”Interestinmyexperiments,only.”
![Page 13: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/13.jpg)
GAMM201913 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
CITest
PerformanceDataRepository
ContinuousIntegration(CI)
DeveloperCodeReview
CIBuildSourceCodeRepository
Push
Schedule inBatchSystem
Web-Application
HPCSystem
TrustedReviewer
Users
MergeintoMasterBranch
CIBenchmarkTests
A Healthy Software Development Cycle
• Storedatainseparaterepository.• UseJSONdataexchangeformat.• Cloningahugerepository is
expensive.• ”Interestinmyexperiments,only.”• Interactiveweb-basedGinkgo
PerformanceExplorer(GPE).
![Page 14: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/14.jpg)
GAMM201914 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
CITest
PerformanceDataRepository
ContinuousIntegration(CI)
DeveloperCodeReview
CIBuildSourceCodeRepository
Push
Schedule inBatchSystem
Web-Application
HPCSystem
TrustedReviewer
Users
MergeintoMasterBranch
CIBenchmarkTests
A Healthy Software Development Cycle
GPEGinkgoPerformanceExplorer
![Page 15: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/15.jpg)
GAMM201915 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo Performance Explorer (GPE)
DataSelectionTab
TransformationScriptEditor
DataandPlotViewer
1.SelectDatainGitrepository.
GPE
![Page 16: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/16.jpg)
GAMM201916 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo Performance Explorer (GPE)
DataSelectionTab
TransformationScriptEditor
DataandPlotViewer
1.SelectDatainGitrepository.
2.WriteJSONatascripttovisualizedata(examplesareprovided).
GPE
![Page 17: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/17.jpg)
GAMM201917 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo Performance Explorer (GPE)
DataSelectionTab
TransformationScriptEditor
DataandPlotViewer
1.SelectDatainGitrepository.
2.WriteJSONatascripttovisualizedata(examplesareprovided).
3.Analyzedatavisually.
GPE
![Page 18: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/18.jpg)
GAMM201918 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo Performance Explorer (GPE)
GPE
![Page 19: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/19.jpg)
GAMM201919 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo Performance Explorer (GPE)
GPE
![Page 20: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/20.jpg)
GAMM201920 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo Performance Explorer (GPE)
GPE
![Page 21: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/21.jpg)
GAMM201921 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo’s Performance Evaluation Framework
GPE
ContinuousBenchmarkingBenefits
• Archivingperformancedataalongwithexecutionparametersensuresfullbenchmarkreproducibility.
• Comparing theperformanceresultsoverthecodelifetimeidentifiesperformancedegradations.
• Easeofuse:thesetupallowstolaunchbenchmarkwithfewclicks.
![Page 22: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/22.jpg)
GAMM201922 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
Ginkgo’s Performance Evaluation Framework
GPE
ContinuousBenchmarkingBenefits
• Archivingperformancedataalongwithexecutionparametersensuresfullbenchmarkreproducibility.
• Comparing theperformanceresultsoverthecodelifetimeidentifiesperformancedegradations.
• Easeofuse:thesetupallowstolaunchbenchmarkwithfewclicks.
GinkgoPerformanceExplorer(GPE)Benefits• ThedesignofGPEefficientlyrealizestheanalysisaswebservice,removingtheneedfordownloading
performancedatatolocaldiskorinstallingadditionalsoftware.
• ExternaldeveloperswithoutaccesstoHPCsystemscantestandengineertheircodesonHPCresources.
• Extensibility:Optiontocompareperformancewithothersoftware libraries.
![Page 23: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters](https://reader033.vdocuments.us/reader033/viewer/2022060501/5f1b1b8dac9f2c1ac8104235/html5/thumbnails/23.jpg)
GAMM201923 02/19/2019 Hartwig Anzt:AnautomatedperformanceevaluationframeworkfortheGinkgosoftwareecosystem
• Open-sourceC++frameworkforsparselinearalgebra.
• Sparselinearsolvers,preconditioners,SpMV etc.
• Genericalgorithmimplementation:+referencekernelsforcheckingcorrectness;+architecture-specifichighlyoptimizedkernels.
• FocusedonGPUaccelerators(i.e.NVIDIAGPUs).
• SoftwarequalityandsustainabilityeffortsguidedbyxSDK communitypolicies:
•
•
•
•
https://xsdk.info/
PratikNayakTerryCojean GoranFlegar ThomasGrützmacher
TobiasRibizel
https://ginkgo-project.github.io/
Learn More about Ginkgo