an automated performance evaluation framework for the ...hanzt/talks/gamm_gpe.pdf · continuous...

23
KIT – The Research University in the Helmholtz Association Hartwig Anzt, Terry Cojean, Goran Flegar, Thomas Grűtzmacher, Pratik Nayak, Tobias Ribizel Steinbuch Centre for Computing (SCC) www.kit.edu An Automated Performance Evaluation Framework for the Ginkgo Software Ecosystem GAMM, February 18 th - 22 nd , 2019 Moving towards ContinuousBenchmarking (CB)

Upload: others

Post on 04-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An Automated Performance Evaluation Framework for the ...hanzt/talks/GAMM_GPE.pdf · Continuous Benchmarking Benefits • Archiving performance data along with execution parameters

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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