• DocumentCode
    108255
  • Title

    Implementation of a Thread-Parallel, GPU-Friendly Function Evaluation Library

  • Author

    Andreassen, Rolf E. ; de Silva, Weeraddana Manjula ; Meadows, Brian T. ; Sokoloff, Michael D. ; Tomko, Karen A.

  • Author_Institution
    Phys. Dept., Univ. of Cincinnati, Cincinnati, OH, USA
  • Volume
    2
  • fYear
    2014
  • fDate
    2014
  • Firstpage
    160
  • Lastpage
    176
  • Abstract
    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.
  • Keywords
    application program interfaces; graphics processing units; maximum likelihood estimation; parallel architectures; parallel programming; software libraries; CUDA; GooFit; MINUIT maximum likelihood fitting program; OpenMP; complex high energy physic problem; log sums; multicore CPUs; nVidia C2050; nVidia GPUs; normalization intergrals; parallel kernel management; parameter estimation; thread-parallel GPU-friendly function evaluation library; thrust library; Graphics processing units; Libraries; Maximum likelihood estimation; Parallel processing; Parallel programming; Parameter estimation; Parallel processing; parallel programming; parameter estimation; parameter extraction;
  • fLanguage
    English
  • Journal_Title
    Access, IEEE
  • Publisher
    ieee
  • ISSN
    2169-3536
  • Type

    jour

  • DOI
    10.1109/ACCESS.2014.2306895
  • Filename
    6746000