SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
GooFit 2.0
Henry Schreiner1
Christoph Hasse2
Bradley Hittle3
Himadri Pandey1
Michael Sokoloff1
Karen Tomko3
August 22, 2017
1
University of Cincinnati
2
Technical University of Dortmund
3
Ohio Supercomputer Center
ACAT 2017
/GooFit/GooFit LGPLv3
• Resembles the RooFit package
• Built for CUDA GPUs
• Also supports OpenMP on CPUs
Classic features
• PDF composition
• PDFs for amplitude analyses
• Binned and unbinned fits
GooFit 2.0 H. Schreiner August 22, 2017 1/14
ACAT 2017
Features of a fit
Variables
PDF1 PDF2
CombinePDF
DataSet
Fitter
Compose
PDFs
Core
Powerful composition of PDFs
• Long list of built-in PDFs
• Combination PDFs using addition,
multiplication, convolution, composition, etc.
• 100+ Variables possible
• Advanced users can create new PDFs
• Expert users can extend GooFit core
GooFit 2.0 H. Schreiner August 22, 2017 2/14
ACAT 2017
Common GPUs
Classic CPUs DP
2.7 MHz × 2 cores × 16 FLOP/cyc = 86.4 MFLOP/s
2.4 MHz × 24 cores × 16 FLOP/cyc = 921.6 MFLOP/s
NVIDIA GPUs
• Programing language: CUDA
• Massively parallel identical operations (SIMD)
• Separate memory model (coprocessor)
TFLOPS
Name Stream processors Clock SP DP Cost
Gamer
GTX 1050 Ti 768 1290 Mhz 1.98 0.062 $150
GTX 1080 Ti 3,584 1596 Mhz 11.3 0.33 $850
Server
Tesla K40 2,880 745 Mhz 4.29 1.43 $3,000
Tesla P100 3,584 1329 Mhz 9.3 4.7 $10,000
GooFit 2.0 H. Schreiner August 22, 2017 3/14
ACAT 2017
Why use GooFit?
1 2 4 12 24 48
44
85
213
418
843
OpenMP threads on 24 core Xeon
Time[s]
πππ0
, 16 time-dependent amplitudes
• Original RooFit code: 19,489 s single core
2 Cores Core 2 Duo 1,159 s
GPU GeForce GTX 1050 Ti 86.4 s
GPU Tesla K40 64.0 s
MPI Tesla K40 ×2 39.3 s
GPU Tesla P100 20.3 s
1 2 4 12 24 48
36
60
118
336
625
1,240
OpenMP threads on 24 core Xeon
Time[s]
ZachFit: M(D∗+
) − M(D0
)
• 142,576 events in unbinned fit
2 Cores Core 2 Duo 738 s
GPU GeForce GTX 1050 Ti 60.3 s
GPU Tesla K40 96.6 s
MPI Tesla K40 ×2 54.3 s
GPU Tesla P100 23.5 s
[Phys.Rev.Lett. 111 (2013) no.11, 111801]
[Phys.Rev. D93 (2016) no.11, 112014]
[Phys.Rev. D88 (2013) no.5, 052003]
[CHEP 2013]
GooFit 2.0 H. Schreiner August 22, 2017 4/14
ACAT 2017
Why use GooFit? Reduce time to insight!
1 2 4 12 24 48
44
85
213
418
843
OpenMP threads on 24 core Xeon
Time[s]
πππ0
, 16 time-dependent amplitudes
• Original RooFit code: 19,489 s single core
2 Cores Core 2 Duo 1,159 s
GPU GeForce GTX 1050 Ti 86.4 s
GPU Tesla K40 64.0 s
MPI Tesla K40 ×2 39.3 s
GPU Tesla P100 20.3 s
1 2 4 12 24 48
36
60
118
336
625
1,240
OpenMP threads on 24 core Xeon
Time[s]
ZachFit: M(D∗+
) − M(D0
)
• 142,576 events in unbinned fit
2 Cores Core 2 Duo 738 s
GPU GeForce GTX 1050 Ti 60.3 s
GPU Tesla K40 96.6 s
MPI Tesla K40 ×2 54.3 s
GPU Tesla P100 23.5 s
GooFit 2.0 H. Schreiner August 22, 2017 4/14
ACAT 2017
New build features
Modernization
2013 2014 2015 2016 2017
0.1 0.2 0.3
OpenMP
0.4
Work in forks Minor updates
1.0
CMake
2.0
CMake enabled features
• Supports IDEs like XCode and QtCreator
• Support for macOS, CPP backend
• Datafiles auto-download (New datasets!)
• Auto-library download and discovery
• Helpers at /CLIUtils/cmake
Other build features
• Initial unit tests added
• Travis CI builds every push
• Travis powered documentation system
• Docker images available
• Example setup on new systems
GooFit 2.0 H. Schreiner August 22, 2017 5/14
ACAT 2017
It's easy to get started
docker run -it ubuntu
apt-get update
apt-get install -y git cmake make g++
git clone --branch=stable https://github.com/GooFit/GooFit.git
cd GooFit
make
Simple installation
• More systems available on
• Or use Docker images: goofit/goofit-omp and goofit/goofit-cuda
GooFit 2.0 H. Schreiner August 22, 2017 6/14
ACAT 2017
New design features
Compose
PDFs
Core
New design features
• C++11, extensive code cleanup
• Color logging, optimization warnings
• Simultaneous fit to disjoint datasets
• MPI support (GPUs or nodes)
• Optimizations for newer NVIDIA cards
./MyAnalysis generate_toy
--params=file.ini
--release_K892_mass
--A12=0.3
--plot
/CLIUtils/CLI11 BSD
• Command line parser using C++11
• Help generation, Subcommands,
validation, config files, 100% test coverage
• Designed to support toolkit customization
/GooFit/Minuit2 LGPLv2.1
• Extracted from ROOT 6.08, no changes
• Full CMake build system
GooFit 2.0 H. Schreiner August 22, 2017 7/14
ACAT 2017
New physics features
Three body time-dependent amplitude analyses (TDAA)
• Mixing in D0
→ π+
π−
π0
TDAA (BaBar)
[Phys.Rev. D93 (2016) no.11, 112014]
• Mixing and CP violation search in D0
→ K0
S π−
π+
, TDAA (LHCb)
[CERN-THESIS-2015-348] (paper in preparation)
Four body time-integrated and time-dependent amplitude analyses
• Mixing parameters in D0
→ K+
π−
π+
π−
TDAA (LHCb)
[CHEP 2016]
Toy Monte Carlo generation using /MultithreadCorner/MCBooster
• MIPWA in GooFit, such as D+
→ h−
h
+
h
+
(LHCb)
[CHEP 2016]
GooFit 2.0 H. Schreiner August 22, 2017 8/14
ACAT 2017
GooFit 2.1: Python bindings
Compose
PDFs
Core
pip install scikit-build cmake
pip install -v goofit
Downloads and installs all of GooFit!
Prototype in GooFit 2.0
• Intended to be interface to composition
• All backends supported
• Only one PDF in GooFit 2.0
• Using CMake and PyBind11
Working on features 2.1 Himadri Pandey
• All PDFs added, including composition PDFs
• Install development version with pip
• Pythonization of objects ongoing
• Converting/adding examples/documentation
GooFit 2.0 H. Schreiner August 22, 2017 9/14
ACAT 2017
GooFit 2.1: Python bindings example
from goofit import *
import numpy as np
xvar = Variable("xvar", -10, 10)
xdata = UnbinnedDataSet(xvar)
npdata = np.random.normal(1, 2.5, 100000)
xdata.from_numpy([npdata], filter=True)
mean = Variable("mean", 0, -10, 10)
sigma = Variable("sigma", 1, 0, 5)
gauss = GaussPdf("gauss", xvar, mean, sigma)
exppdf.fitTo(data)
grid, values = gauss.evaluatePdf(xval)
GooFit 2.0 H. Schreiner August 22, 2017 10/14
ACAT 2017
GooFit 2.1: Python bindings example
from goofit import *
import numpy as np
xvar = Variable("xvar", -10, 10)
xdata = UnbinnedDataSet(xvar)
npdata = np.random.normal(1, 2.5, 100000)
xdata.from_numpy([npdata], filter=True)
mean = Variable("mean", 0, -10, 10)
sigma = Variable("sigma", 1, 0, 5)
gauss = GaussPdf("gauss", xvar, mean, sigma)
exppdf.fitTo(data)
grid, values = gauss.evaluatePdf(xval)
−10 −5 0 5 10
xvar
Data for red line PDF plot
GooFit 2.0 H. Schreiner August 22, 2017 10/14
ACAT 2017
GooFit future
Compose
PDFs
Core
New PDF indexing system
• Designed by Bradley Hittle at OSC
• Simpler PDF authoring
• We can alter core later
Other plans
• /multithreadcorner/Hydra
(optional inclusion)
• GooFit 2torial: henryiii.gitbooks.io/GooFit
• Drop support for CMake < 3.8
GooFit 2.0 H. Schreiner August 22, 2017 11/14
ACAT 2017
Summary
GooFit 2.0 Available now
• Much easier to start using
Automated CMake builds
More supported platforms including macOS
Easy backend selection:
OpenMP, CUDA, CPP, partial TBB
• More examples and PDFs
• Added example datasets
• Added MPI and performance enhancements
GooFit 2.1 Coming soon
• Python bindings for composition
• Development releases on PyPI now
GooFit 2.x series
• Simpler PDF authoring
• Extended documentation
• Hydra inclusion
• CMake 3.8+ requirement
GooFit 2.0 H. Schreiner August 22, 2017 12/14
ACAT 2017
Acknowledgments
• A. Augusto Alves Jr.
• Rolf Andreassen
• Christoph Hasse
• Bradley Hittle
• Zachary Huard
• Brian Maddock
• Himadri Pandey
• Michael Sokoloff
• Liang Sun
• Karen Tomko
Development of GooFit 2.x is supported under NSF grant PHY-1414736.
GooFit was originally developed under PHY-1005530. Any opinions,
findings, and conclusions or recommendations expressed in this
presentation are those of the developers and do not necessarily reflect the
views of the National Science Foundation.
goofit.github.io
GooFit 2.0 H. Schreiner August 22, 2017 13/14
ACAT 2017
Questions?
henry.schreiner@uc.edu
Give our projects a try and a star on !
/GooFit/GooFit
/GooFit/Minuit2
/CLIUtils/CLI11
/CLIUtils/cmake
/multithreadcorner/Hydra
GooFit 2.0 H. Schreiner August 22, 2017 14/14
ACAT 2017
Running Timing Examples
General notes
• You can pick cards with the prefix: CUDA_VISIBLE_DEVICES=0,1
πππ0
• time ./pipipi0DPFit canonical dataFiles/cocktail_pp_0.txt --blindSeed=0
• time mpiexec -np 2 ./pipipi0DPFit canonical dataFiles/cocktail_pp_0.txt
--blindSeed=0
ZachFit
• time ./zachFit 0 1
• time mpiexec -np 2 ./zachFit 0 1
GooFit 2.0 H. Schreiner August 22, 2017 15/14
ACAT 2017
Command line parsing
./MyAnalysis generate_toy
--params=file.ini
--release_K892_mass
--A12=0.3
--plot
Recurring theme
• Analyses require 40+ options and multiple procedures
• Found a lot of duplicated code for argument parsing
• Many bugs related to parsing (usually segfaults)
• Needed powerful solution, with direct access to values
GooFit 2.0 H. Schreiner August 22, 2017 16/14
ACAT 2017
CLI11
/CLIUtils/CLI11 BSD
• No dependencies
• Compiles to single header file
Features
• Nested subcommands
• Configuration files
• 100% test coverage
• CI tests on macOS/Linux/Windows
• + GooFit’s features
Use in GooFit
• Testbed for new build features
GooFit::Application
• Auto logging
• Optimization warnings
• GPU switches
• MPI support
• Completely optional
GooFit 2.0 H. Schreiner August 22, 2017 17/14
ACAT 2017

Weitere ähnliche Inhalte

Was ist angesagt?

IRIS-HEP: Boost-histogram and Hist
IRIS-HEP: Boost-histogram and HistIRIS-HEP: Boost-histogram and Hist
IRIS-HEP: Boost-histogram and HistHenry Schreiner
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingHenry Schreiner
 
IRIS-HEP Retreat: Boost-Histogram Roadmap
IRIS-HEP Retreat: Boost-Histogram RoadmapIRIS-HEP Retreat: Boost-Histogram Roadmap
IRIS-HEP Retreat: Boost-Histogram RoadmapHenry Schreiner
 
PyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming PackagesPyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming PackagesHenry Schreiner
 
CHEP 2019: Recent developments in histogram libraries
CHEP 2019: Recent developments in histogram librariesCHEP 2019: Recent developments in histogram libraries
CHEP 2019: Recent developments in histogram librariesHenry Schreiner
 
PEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyPEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyHenry Schreiner
 
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataHitoshi Sato
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合Hitoshi Sato
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerHitoshi Sato
 
Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014Hitoshi Sato
 
Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11corehard_by
 
150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentationTakayuki Nuimura
 
Keynote at Converge 2019
Keynote at Converge 2019Keynote at Converge 2019
Keynote at Converge 2019Travis Oliphant
 
PyPy - is it ready for production
PyPy - is it ready for productionPyPy - is it ready for production
PyPy - is it ready for productionMark Rees
 
Calling python from r
Calling python from rCalling python from r
Calling python from rBarry DeCicco
 

Was ist angesagt? (20)

IRIS-HEP: Boost-histogram and Hist
IRIS-HEP: Boost-histogram and HistIRIS-HEP: Boost-histogram and Hist
IRIS-HEP: Boost-histogram and Hist
 
Digital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meetingDigital RSE: automated code quality checks - RSE group meeting
Digital RSE: automated code quality checks - RSE group meeting
 
IRIS-HEP Retreat: Boost-Histogram Roadmap
IRIS-HEP Retreat: Boost-Histogram RoadmapIRIS-HEP Retreat: Boost-Histogram Roadmap
IRIS-HEP Retreat: Boost-Histogram Roadmap
 
PyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming PackagesPyHEP 2019: Python Histogramming Packages
PyHEP 2019: Python Histogramming Packages
 
CHEP 2019: Recent developments in histogram libraries
CHEP 2019: Recent developments in histogram librariesCHEP 2019: Recent developments in histogram libraries
CHEP 2019: Recent developments in histogram libraries
 
PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8PyHEP 2019: Python 3.8
PyHEP 2019: Python 3.8
 
PEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case StudyPEARC17: Modernizing GooFit: A Case Study
PEARC17: Modernizing GooFit: A Case Study
 
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC Container
 
Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014
 
Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11Mixing C++ & Python II: Pybind11
Mixing C++ & Python II: Pybind11
 
150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation
 
Keynote at Converge 2019
Keynote at Converge 2019Keynote at Converge 2019
Keynote at Converge 2019
 
PyPy - is it ready for production
PyPy - is it ready for productionPyPy - is it ready for production
PyPy - is it ready for production
 
PyCon Estonia 2019
PyCon Estonia 2019PyCon Estonia 2019
PyCon Estonia 2019
 
Implementation of HDF-EOS5 and HDF5 into NCL
Implementation of HDF-EOS5 and HDF5 into NCLImplementation of HDF-EOS5 and HDF5 into NCL
Implementation of HDF-EOS5 and HDF5 into NCL
 
Python kansai2019
Python kansai2019Python kansai2019
Python kansai2019
 
Calling python from r
Calling python from rCalling python from r
Calling python from r
 
Visualizing and Analyzing HDF-EOS5 and HDF5 data with NCL
Visualizing and Analyzing HDF-EOS5 and HDF5 data with NCLVisualizing and Analyzing HDF-EOS5 and HDF5 data with NCL
Visualizing and Analyzing HDF-EOS5 and HDF5 data with NCL
 

Ähnlich wie ACAT 2017: GooFit 2.0

ACL-2022_tutorial_part_AB_V8 (1).pdf
ACL-2022_tutorial_part_AB_V8 (1).pdfACL-2022_tutorial_part_AB_V8 (1).pdf
ACL-2022_tutorial_part_AB_V8 (1).pdftuxinhui1
 
GPU Computation and the Next Gen Cloud
GPU Computation and the Next Gen CloudGPU Computation and the Next Gen Cloud
GPU Computation and the Next Gen CloudJayprasad Hegde
 
World's Fastest Machine Learning With GPUs
World's Fastest Machine Learning With GPUsWorld's Fastest Machine Learning With GPUs
World's Fastest Machine Learning With GPUsSri Ambati
 
HNSciCloud update @ the World LHC Computing Grid deployment board
HNSciCloud update @ the World LHC Computing Grid deployment board  HNSciCloud update @ the World LHC Computing Grid deployment board
HNSciCloud update @ the World LHC Computing Grid deployment board Helix Nebula The Science Cloud
 
Scientific Visualization
Scientific VisualizationScientific Visualization
Scientific VisualizationJosef Heinen
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymenthyeongchae lee
 
Scientific Computing @ Fred Hutch
Scientific Computing @ Fred HutchScientific Computing @ Fred Hutch
Scientific Computing @ Fred HutchDirk Petersen
 
Getting Started with Hadoop
Getting Started with HadoopGetting Started with Hadoop
Getting Started with HadoopJosh Devins
 
Upgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetUpgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetDavide Cavalca
 
Teaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedTeaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedMartin Christen
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Chandan Kumar
 
All you need to know about Orient Me
All you need to know about Orient MeAll you need to know about Orient Me
All you need to know about Orient MeLetsConnect
 
SOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient MeSOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient MeNico Meisenzahl
 
SocCnx11 - All you need to know about orient me
SocCnx11 - All you need to know about orient meSocCnx11 - All you need to know about orient me
SocCnx11 - All you need to know about orient mepanagenda
 
ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2Jürgen Gutsch
 
Accumulo Summit Keynote 2018
Accumulo Summit Keynote 2018Accumulo Summit Keynote 2018
Accumulo Summit Keynote 2018Accumulo Summit
 
Tech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapTech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapAdaCore
 

Ähnlich wie ACAT 2017: GooFit 2.0 (20)

ACL-2022_tutorial_part_AB_V8 (1).pdf
ACL-2022_tutorial_part_AB_V8 (1).pdfACL-2022_tutorial_part_AB_V8 (1).pdf
ACL-2022_tutorial_part_AB_V8 (1).pdf
 
GPU Computation and the Next Gen Cloud
GPU Computation and the Next Gen CloudGPU Computation and the Next Gen Cloud
GPU Computation and the Next Gen Cloud
 
World's Fastest Machine Learning With GPUs
World's Fastest Machine Learning With GPUsWorld's Fastest Machine Learning With GPUs
World's Fastest Machine Learning With GPUs
 
HNSciCloud update @ the World LHC Computing Grid deployment board
HNSciCloud update @ the World LHC Computing Grid deployment board  HNSciCloud update @ the World LHC Computing Grid deployment board
HNSciCloud update @ the World LHC Computing Grid deployment board
 
Scientific Visualization
Scientific VisualizationScientific Visualization
Scientific Visualization
 
patroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deploymentpatroni-based citrus high availability environment deployment
patroni-based citrus high availability environment deployment
 
The GPGPU Continuum
The GPGPU ContinuumThe GPGPU Continuum
The GPGPU Continuum
 
Scientific Computing @ Fred Hutch
Scientific Computing @ Fred HutchScientific Computing @ Fred Hutch
Scientific Computing @ Fred Hutch
 
Getting Started with Hadoop
Getting Started with HadoopGetting Started with Hadoop
Getting Started with Hadoop
 
Upgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetUpgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleet
 
Teaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learnedTeaching with JupyterHub - lessons learned
Teaching with JupyterHub - lessons learned
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
afternoon3.pdf
afternoon3.pdfafternoon3.pdf
afternoon3.pdf
 
HDF Update 2016
HDF Update 2016HDF Update 2016
HDF Update 2016
 
All you need to know about Orient Me
All you need to know about Orient MeAll you need to know about Orient Me
All you need to know about Orient Me
 
SOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient MeSOCCNX11 All you need to know about Orient Me
SOCCNX11 All you need to know about Orient Me
 
SocCnx11 - All you need to know about orient me
SocCnx11 - All you need to know about orient meSocCnx11 - All you need to know about orient me
SocCnx11 - All you need to know about orient me
 
ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2ASP.NET 5 on the Raspberry PI 2
ASP.NET 5 on the Raspberry PI 2
 
Accumulo Summit Keynote 2018
Accumulo Summit Keynote 2018Accumulo Summit Keynote 2018
Accumulo Summit Keynote 2018
 
Tech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore RoadmapTech Days 2015: AdaCore Roadmap
Tech Days 2015: AdaCore Roadmap
 

Mehr von Henry Schreiner

Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Henry Schreiner
 
Princeton RSE Peer network first meeting
Princeton RSE Peer network first meetingPrinceton RSE Peer network first meeting
Princeton RSE Peer network first meetingHenry Schreiner
 
Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Henry Schreiner
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingHenry Schreiner
 
What's new in Python 3.11
What's new in Python 3.11What's new in Python 3.11
What's new in Python 3.11Henry Schreiner
 
Everything you didn't know you needed
Everything you didn't know you neededEverything you didn't know you needed
Everything you didn't know you neededHenry Schreiner
 
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...Henry Schreiner
 
PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packaging
PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packagingPyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packaging
PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packagingHenry Schreiner
 
PyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsPyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsHenry Schreiner
 
boost-histogram / Hist: PyHEP Topical meeting
boost-histogram / Hist: PyHEP Topical meetingboost-histogram / Hist: PyHEP Topical meeting
boost-histogram / Hist: PyHEP Topical meetingHenry Schreiner
 
HOW 2019: Machine Learning for the Primary Vertex Reconstruction
HOW 2019: Machine Learning for the Primary Vertex ReconstructionHOW 2019: Machine Learning for the Primary Vertex Reconstruction
HOW 2019: Machine Learning for the Primary Vertex ReconstructionHenry Schreiner
 
HOW 2019: A complete reproducible ROOT environment in under 5 minutes
HOW 2019: A complete reproducible ROOT environment in under 5 minutesHOW 2019: A complete reproducible ROOT environment in under 5 minutes
HOW 2019: A complete reproducible ROOT environment in under 5 minutesHenry Schreiner
 
ACAT 2019: A hybrid deep learning approach to vertexing
ACAT 2019: A hybrid deep learning approach to vertexingACAT 2019: A hybrid deep learning approach to vertexing
ACAT 2019: A hybrid deep learning approach to vertexingHenry Schreiner
 
2019 CtD: A hybrid deep learning approach to vertexing
2019 CtD: A hybrid deep learning approach to vertexing2019 CtD: A hybrid deep learning approach to vertexing
2019 CtD: A hybrid deep learning approach to vertexingHenry Schreiner
 
2019 IML workshop: A hybrid deep learning approach to vertexing
2019 IML workshop: A hybrid deep learning approach to vertexing2019 IML workshop: A hybrid deep learning approach to vertexing
2019 IML workshop: A hybrid deep learning approach to vertexingHenry Schreiner
 
LHCb Computing Workshop 2018: PV finding with CNNs
LHCb Computing Workshop 2018: PV finding with CNNsLHCb Computing Workshop 2018: PV finding with CNNs
LHCb Computing Workshop 2018: PV finding with CNNsHenry Schreiner
 

Mehr von Henry Schreiner (18)

Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024
 
Princeton RSE Peer network first meeting
Princeton RSE Peer network first meetingPrinceton RSE Peer network first meeting
Princeton RSE Peer network first meeting
 
Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023Software Quality Assurance Tooling 2023
Software Quality Assurance Tooling 2023
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance Tooling
 
What's new in Python 3.11
What's new in Python 3.11What's new in Python 3.11
What's new in Python 3.11
 
Everything you didn't know you needed
Everything you didn't know you neededEverything you didn't know you needed
Everything you didn't know you needed
 
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
SciPy22 - Building binary extensions with pybind11, scikit build, and cibuild...
 
SciPy 2022 Scikit-HEP
SciPy 2022 Scikit-HEPSciPy 2022 Scikit-HEP
SciPy 2022 Scikit-HEP
 
PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packaging
PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packagingPyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packaging
PyCon 2022 -Scikit-HEP Developer Pages: Guidelines for modern packaging
 
PyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsPyCon2022 - Building Python Extensions
PyCon2022 - Building Python Extensions
 
boost-histogram / Hist: PyHEP Topical meeting
boost-histogram / Hist: PyHEP Topical meetingboost-histogram / Hist: PyHEP Topical meeting
boost-histogram / Hist: PyHEP Topical meeting
 
CMake best practices
CMake best practicesCMake best practices
CMake best practices
 
HOW 2019: Machine Learning for the Primary Vertex Reconstruction
HOW 2019: Machine Learning for the Primary Vertex ReconstructionHOW 2019: Machine Learning for the Primary Vertex Reconstruction
HOW 2019: Machine Learning for the Primary Vertex Reconstruction
 
HOW 2019: A complete reproducible ROOT environment in under 5 minutes
HOW 2019: A complete reproducible ROOT environment in under 5 minutesHOW 2019: A complete reproducible ROOT environment in under 5 minutes
HOW 2019: A complete reproducible ROOT environment in under 5 minutes
 
ACAT 2019: A hybrid deep learning approach to vertexing
ACAT 2019: A hybrid deep learning approach to vertexingACAT 2019: A hybrid deep learning approach to vertexing
ACAT 2019: A hybrid deep learning approach to vertexing
 
2019 CtD: A hybrid deep learning approach to vertexing
2019 CtD: A hybrid deep learning approach to vertexing2019 CtD: A hybrid deep learning approach to vertexing
2019 CtD: A hybrid deep learning approach to vertexing
 
2019 IML workshop: A hybrid deep learning approach to vertexing
2019 IML workshop: A hybrid deep learning approach to vertexing2019 IML workshop: A hybrid deep learning approach to vertexing
2019 IML workshop: A hybrid deep learning approach to vertexing
 
LHCb Computing Workshop 2018: PV finding with CNNs
LHCb Computing Workshop 2018: PV finding with CNNsLHCb Computing Workshop 2018: PV finding with CNNs
LHCb Computing Workshop 2018: PV finding with CNNs
 

Kürzlich hochgeladen

Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...RohitNehra6
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000Sapana Sha
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...ssifa0344
 
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptxUnlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptxanandsmhk
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Sérgio Sacani
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxgindu3009
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRDelhi Call girls
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )aarthirajkumar25
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisDiwakar Mishra
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoSérgio Sacani
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfrohankumarsinghrore1
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfSumit Kumar yadav
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencySheetal Arora
 
Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfSumit Kumar yadav
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsSérgio Sacani
 
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINChromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINsankalpkumarsahoo174
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSSLeenakshiTyagi
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PPRINCE C P
 

Kürzlich hochgeladen (20)

Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
 
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptxUnlocking  the Potential: Deep dive into ocean of Ceramic Magnets.pptx
Unlocking the Potential: Deep dive into ocean of Ceramic Magnets.pptx
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Botany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdfBotany 4th semester series (krishna).pdf
Botany 4th semester series (krishna).pdf
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdf
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINChromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSS
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 

ACAT 2017: GooFit 2.0

  • 1. GooFit 2.0 Henry Schreiner1 Christoph Hasse2 Bradley Hittle3 Himadri Pandey1 Michael Sokoloff1 Karen Tomko3 August 22, 2017 1 University of Cincinnati 2 Technical University of Dortmund 3 Ohio Supercomputer Center ACAT 2017
  • 2. /GooFit/GooFit LGPLv3 • Resembles the RooFit package • Built for CUDA GPUs • Also supports OpenMP on CPUs Classic features • PDF composition • PDFs for amplitude analyses • Binned and unbinned fits GooFit 2.0 H. Schreiner August 22, 2017 1/14 ACAT 2017
  • 3. Features of a fit Variables PDF1 PDF2 CombinePDF DataSet Fitter Compose PDFs Core Powerful composition of PDFs • Long list of built-in PDFs • Combination PDFs using addition, multiplication, convolution, composition, etc. • 100+ Variables possible • Advanced users can create new PDFs • Expert users can extend GooFit core GooFit 2.0 H. Schreiner August 22, 2017 2/14 ACAT 2017
  • 4. Common GPUs Classic CPUs DP 2.7 MHz × 2 cores × 16 FLOP/cyc = 86.4 MFLOP/s 2.4 MHz × 24 cores × 16 FLOP/cyc = 921.6 MFLOP/s NVIDIA GPUs • Programing language: CUDA • Massively parallel identical operations (SIMD) • Separate memory model (coprocessor) TFLOPS Name Stream processors Clock SP DP Cost Gamer GTX 1050 Ti 768 1290 Mhz 1.98 0.062 $150 GTX 1080 Ti 3,584 1596 Mhz 11.3 0.33 $850 Server Tesla K40 2,880 745 Mhz 4.29 1.43 $3,000 Tesla P100 3,584 1329 Mhz 9.3 4.7 $10,000 GooFit 2.0 H. Schreiner August 22, 2017 3/14 ACAT 2017
  • 5. Why use GooFit? 1 2 4 12 24 48 44 85 213 418 843 OpenMP threads on 24 core Xeon Time[s] πππ0 , 16 time-dependent amplitudes • Original RooFit code: 19,489 s single core 2 Cores Core 2 Duo 1,159 s GPU GeForce GTX 1050 Ti 86.4 s GPU Tesla K40 64.0 s MPI Tesla K40 ×2 39.3 s GPU Tesla P100 20.3 s 1 2 4 12 24 48 36 60 118 336 625 1,240 OpenMP threads on 24 core Xeon Time[s] ZachFit: M(D∗+ ) − M(D0 ) • 142,576 events in unbinned fit 2 Cores Core 2 Duo 738 s GPU GeForce GTX 1050 Ti 60.3 s GPU Tesla K40 96.6 s MPI Tesla K40 ×2 54.3 s GPU Tesla P100 23.5 s [Phys.Rev.Lett. 111 (2013) no.11, 111801] [Phys.Rev. D93 (2016) no.11, 112014] [Phys.Rev. D88 (2013) no.5, 052003] [CHEP 2013] GooFit 2.0 H. Schreiner August 22, 2017 4/14 ACAT 2017
  • 6. Why use GooFit? Reduce time to insight! 1 2 4 12 24 48 44 85 213 418 843 OpenMP threads on 24 core Xeon Time[s] πππ0 , 16 time-dependent amplitudes • Original RooFit code: 19,489 s single core 2 Cores Core 2 Duo 1,159 s GPU GeForce GTX 1050 Ti 86.4 s GPU Tesla K40 64.0 s MPI Tesla K40 ×2 39.3 s GPU Tesla P100 20.3 s 1 2 4 12 24 48 36 60 118 336 625 1,240 OpenMP threads on 24 core Xeon Time[s] ZachFit: M(D∗+ ) − M(D0 ) • 142,576 events in unbinned fit 2 Cores Core 2 Duo 738 s GPU GeForce GTX 1050 Ti 60.3 s GPU Tesla K40 96.6 s MPI Tesla K40 ×2 54.3 s GPU Tesla P100 23.5 s GooFit 2.0 H. Schreiner August 22, 2017 4/14 ACAT 2017
  • 7. New build features Modernization 2013 2014 2015 2016 2017 0.1 0.2 0.3 OpenMP 0.4 Work in forks Minor updates 1.0 CMake 2.0 CMake enabled features • Supports IDEs like XCode and QtCreator • Support for macOS, CPP backend • Datafiles auto-download (New datasets!) • Auto-library download and discovery • Helpers at /CLIUtils/cmake Other build features • Initial unit tests added • Travis CI builds every push • Travis powered documentation system • Docker images available • Example setup on new systems GooFit 2.0 H. Schreiner August 22, 2017 5/14 ACAT 2017
  • 8. It's easy to get started docker run -it ubuntu apt-get update apt-get install -y git cmake make g++ git clone --branch=stable https://github.com/GooFit/GooFit.git cd GooFit make Simple installation • More systems available on • Or use Docker images: goofit/goofit-omp and goofit/goofit-cuda GooFit 2.0 H. Schreiner August 22, 2017 6/14 ACAT 2017
  • 9. New design features Compose PDFs Core New design features • C++11, extensive code cleanup • Color logging, optimization warnings • Simultaneous fit to disjoint datasets • MPI support (GPUs or nodes) • Optimizations for newer NVIDIA cards ./MyAnalysis generate_toy --params=file.ini --release_K892_mass --A12=0.3 --plot /CLIUtils/CLI11 BSD • Command line parser using C++11 • Help generation, Subcommands, validation, config files, 100% test coverage • Designed to support toolkit customization /GooFit/Minuit2 LGPLv2.1 • Extracted from ROOT 6.08, no changes • Full CMake build system GooFit 2.0 H. Schreiner August 22, 2017 7/14 ACAT 2017
  • 10. New physics features Three body time-dependent amplitude analyses (TDAA) • Mixing in D0 → π+ π− π0 TDAA (BaBar) [Phys.Rev. D93 (2016) no.11, 112014] • Mixing and CP violation search in D0 → K0 S π− π+ , TDAA (LHCb) [CERN-THESIS-2015-348] (paper in preparation) Four body time-integrated and time-dependent amplitude analyses • Mixing parameters in D0 → K+ π− π+ π− TDAA (LHCb) [CHEP 2016] Toy Monte Carlo generation using /MultithreadCorner/MCBooster • MIPWA in GooFit, such as D+ → h− h + h + (LHCb) [CHEP 2016] GooFit 2.0 H. Schreiner August 22, 2017 8/14 ACAT 2017
  • 11. GooFit 2.1: Python bindings Compose PDFs Core pip install scikit-build cmake pip install -v goofit Downloads and installs all of GooFit! Prototype in GooFit 2.0 • Intended to be interface to composition • All backends supported • Only one PDF in GooFit 2.0 • Using CMake and PyBind11 Working on features 2.1 Himadri Pandey • All PDFs added, including composition PDFs • Install development version with pip • Pythonization of objects ongoing • Converting/adding examples/documentation GooFit 2.0 H. Schreiner August 22, 2017 9/14 ACAT 2017
  • 12. GooFit 2.1: Python bindings example from goofit import * import numpy as np xvar = Variable("xvar", -10, 10) xdata = UnbinnedDataSet(xvar) npdata = np.random.normal(1, 2.5, 100000) xdata.from_numpy([npdata], filter=True) mean = Variable("mean", 0, -10, 10) sigma = Variable("sigma", 1, 0, 5) gauss = GaussPdf("gauss", xvar, mean, sigma) exppdf.fitTo(data) grid, values = gauss.evaluatePdf(xval) GooFit 2.0 H. Schreiner August 22, 2017 10/14 ACAT 2017
  • 13. GooFit 2.1: Python bindings example from goofit import * import numpy as np xvar = Variable("xvar", -10, 10) xdata = UnbinnedDataSet(xvar) npdata = np.random.normal(1, 2.5, 100000) xdata.from_numpy([npdata], filter=True) mean = Variable("mean", 0, -10, 10) sigma = Variable("sigma", 1, 0, 5) gauss = GaussPdf("gauss", xvar, mean, sigma) exppdf.fitTo(data) grid, values = gauss.evaluatePdf(xval) −10 −5 0 5 10 xvar Data for red line PDF plot GooFit 2.0 H. Schreiner August 22, 2017 10/14 ACAT 2017
  • 14. GooFit future Compose PDFs Core New PDF indexing system • Designed by Bradley Hittle at OSC • Simpler PDF authoring • We can alter core later Other plans • /multithreadcorner/Hydra (optional inclusion) • GooFit 2torial: henryiii.gitbooks.io/GooFit • Drop support for CMake < 3.8 GooFit 2.0 H. Schreiner August 22, 2017 11/14 ACAT 2017
  • 15. Summary GooFit 2.0 Available now • Much easier to start using Automated CMake builds More supported platforms including macOS Easy backend selection: OpenMP, CUDA, CPP, partial TBB • More examples and PDFs • Added example datasets • Added MPI and performance enhancements GooFit 2.1 Coming soon • Python bindings for composition • Development releases on PyPI now GooFit 2.x series • Simpler PDF authoring • Extended documentation • Hydra inclusion • CMake 3.8+ requirement GooFit 2.0 H. Schreiner August 22, 2017 12/14 ACAT 2017
  • 16. Acknowledgments • A. Augusto Alves Jr. • Rolf Andreassen • Christoph Hasse • Bradley Hittle • Zachary Huard • Brian Maddock • Himadri Pandey • Michael Sokoloff • Liang Sun • Karen Tomko Development of GooFit 2.x is supported under NSF grant PHY-1414736. GooFit was originally developed under PHY-1005530. Any opinions, findings, and conclusions or recommendations expressed in this presentation are those of the developers and do not necessarily reflect the views of the National Science Foundation. goofit.github.io GooFit 2.0 H. Schreiner August 22, 2017 13/14 ACAT 2017
  • 17. Questions? henry.schreiner@uc.edu Give our projects a try and a star on ! /GooFit/GooFit /GooFit/Minuit2 /CLIUtils/CLI11 /CLIUtils/cmake /multithreadcorner/Hydra GooFit 2.0 H. Schreiner August 22, 2017 14/14 ACAT 2017
  • 18. Running Timing Examples General notes • You can pick cards with the prefix: CUDA_VISIBLE_DEVICES=0,1 πππ0 • time ./pipipi0DPFit canonical dataFiles/cocktail_pp_0.txt --blindSeed=0 • time mpiexec -np 2 ./pipipi0DPFit canonical dataFiles/cocktail_pp_0.txt --blindSeed=0 ZachFit • time ./zachFit 0 1 • time mpiexec -np 2 ./zachFit 0 1 GooFit 2.0 H. Schreiner August 22, 2017 15/14 ACAT 2017
  • 19. Command line parsing ./MyAnalysis generate_toy --params=file.ini --release_K892_mass --A12=0.3 --plot Recurring theme • Analyses require 40+ options and multiple procedures • Found a lot of duplicated code for argument parsing • Many bugs related to parsing (usually segfaults) • Needed powerful solution, with direct access to values GooFit 2.0 H. Schreiner August 22, 2017 16/14 ACAT 2017
  • 20. CLI11 /CLIUtils/CLI11 BSD • No dependencies • Compiles to single header file Features • Nested subcommands • Configuration files • 100% test coverage • CI tests on macOS/Linux/Windows • + GooFit’s features Use in GooFit • Testbed for new build features GooFit::Application • Auto logging • Optimization warnings • GPU switches • MPI support • Completely optional GooFit 2.0 H. Schreiner August 22, 2017 17/14 ACAT 2017