Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library
GooFit is a thread-parallel, GPU-friendly function evaluation library, nominally designed for use with the maximum likelihood fitting program MINUIT. In this use case, it provides highly parallel calculations of normalization intergrals and log (likelihood) sums. A key feature of the design is its u...
Main Authors: | , , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
IEEE
2014-01-01
|
Series: | IEEE Access |
Subjects: | |
Online Access: | https://ieeexplore.ieee.org/document/6746000/ |
id |
doaj-920bfba2cacd4b3eab4128232e10bda4 |
---|---|
record_format |
Article |
spelling |
doaj-920bfba2cacd4b3eab4128232e10bda42021-03-29T19:30:23ZengIEEEIEEE Access2169-35362014-01-01216017610.1109/ACCESS.2014.23068956746000Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation LibraryRolf E. Andreassen0Weeraddana Manjula de Silva1Brian T. Meadows2Michael D. Sokoloff3Karen A. Tomko4Physics Department, University of Cincinnati, Cincinnati, OH, USAPhysics Department, University of Cincinnati, Cincinnati, OH, USAPhysics Department, University of Cincinnati, Cincinnati, OH, USAPhysics Department, University of Cincinnati, Cincinnati, OH, USAOhio Supercomputer Center, Columbus, OH, USAGooFit is a thread-parallel, GPU-friendly function evaluation library, nominally designed for use with the maximum likelihood fitting program MINUIT. In this use case, it provides highly parallel calculations of normalization intergrals and log (likelihood) sums. A key feature of the design is its use of the Thrust library to manage all parallel kernel launches. This allows GooFit to execute on any architecture for which Thrust has a backend, currently, including CUDA for nVidia GPUs and OpenMP for single- and multicore CPUs. Running on an nVidia C2050, GooFit executes 300 times more quickly for a complex high energy physics problem than does the prior (algorithmically equivalent) code running on a single CPU core. The design and implementation choices, discussed in detail, can help to guide developers of other highly parallel, compute-intensive libraries.https://ieeexplore.ieee.org/document/6746000/Parallel processingparallel programmingparameter estimationparameter extraction |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Rolf E. Andreassen Weeraddana Manjula de Silva Brian T. Meadows Michael D. Sokoloff Karen A. Tomko |
spellingShingle |
Rolf E. Andreassen Weeraddana Manjula de Silva Brian T. Meadows Michael D. Sokoloff Karen A. Tomko Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library IEEE Access Parallel processing parallel programming parameter estimation parameter extraction |
author_facet |
Rolf E. Andreassen Weeraddana Manjula de Silva Brian T. Meadows Michael D. Sokoloff Karen A. Tomko |
author_sort |
Rolf E. Andreassen |
title |
Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library |
title_short |
Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library |
title_full |
Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library |
title_fullStr |
Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library |
title_full_unstemmed |
Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library |
title_sort |
implementation of a thread-parallel, gpu-friendly function evaluation library |
publisher |
IEEE |
series |
IEEE Access |
issn |
2169-3536 |
publishDate |
2014-01-01 |
description |
GooFit is a thread-parallel, GPU-friendly function evaluation library, nominally designed for use with the maximum likelihood fitting program MINUIT. In this use case, it provides highly parallel calculations of normalization intergrals and log (likelihood) sums. A key feature of the design is its use of the Thrust library to manage all parallel kernel launches. This allows GooFit to execute on any architecture for which Thrust has a backend, currently, including CUDA for nVidia GPUs and OpenMP for single- and multicore CPUs. Running on an nVidia C2050, GooFit executes 300 times more quickly for a complex high energy physics problem than does the prior (algorithmically equivalent) code running on a single CPU core. The design and implementation choices, discussed in detail, can help to guide developers of other highly parallel, compute-intensive libraries. |
topic |
Parallel processing parallel programming parameter estimation parameter extraction |
url |
https://ieeexplore.ieee.org/document/6746000/ |
work_keys_str_mv |
AT rolfeandreassen implementationofathreadparallelgpufriendlyfunctionevaluationlibrary AT weeraddanamanjuladesilva implementationofathreadparallelgpufriendlyfunctionevaluationlibrary AT briantmeadows implementationofathreadparallelgpufriendlyfunctionevaluationlibrary AT michaeldsokoloff implementationofathreadparallelgpufriendlyfunctionevaluationlibrary AT karenatomko implementationofathreadparallelgpufriendlyfunctionevaluationlibrary |
_version_ |
1724196061294100480 |