By Topic

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

Sign In

Cookies must be enabled to login.After enabling cookies , please use refresh or reload or ctrl+f5 on the browser for the login options.

The purchase and pricing options are temporarily unavailable. Please try again later.
5 Author(s)
Andreassen, R.E. ; Phys. Dept., Univ. of Cincinnati, Cincinnati, OH, USA ; de Silva, W.M. ; Meadows, B.T. ; Sokoloff, M.D.
more authors

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.

Control and data flow of a GooFit program (top) and overall architecture of GooFit (bottom). Control and data flow of a GooFit program (top) and overall architecture of GooFit (bottom).

Published in:

Access, IEEE  (Volume:2 )
comments powered by Disqus