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

Full description

Bibliographic Details
Main Authors: Rolf E. Andreassen, Weeraddana Manjula de Silva, Brian T. Meadows, Michael D. Sokoloff, Karen A. Tomko
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