Buckner_GPU-R_BOSC2009
Upcoming SlideShare
Loading in...5
×
 

Buckner_GPU-R_BOSC2009

on

  • 1,084 views

 

Statistics

Views

Total Views
1,084
Views on SlideShare
1,082
Embed Views
2

Actions

Likes
0
Downloads
7
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Buckner_GPU-R_BOSC2009 Buckner_GPU-R_BOSC2009 Presentation Transcript

  • Enabling GPU Computing in the R Statistical Environment Josh Buckner bucknerj@umich.edu Molecular & Behavioral Neuroscience Institute University of Michigan Ann Arbor, MI 48109
  • Josh Buckner, Manhong Dai, Brian Athey, Stanley Watson and Fan Meng Support from: Pritzker Neuropsychiatric Disorders Consortium National Center for Integrative Biomedical Informatics Center for Computational Biology and Medicine
  • Motivation ● Default R install – Desktop – Single thread of execution ● Cost of traditional cluster
  • nVidia CUDA ● Free toolkit ● Inexpensive readily available desktop hardware ● Simple extension of C ● Lots of documentation
  • gpuGranger ● Granger-causality test ● statistic measuring whether sequence a predicts the values of seqence b better than b alone
  • gpuCor ● Pearson ● pairwise complete Pearson ● Kendall
  • gpuClust ● hierarchical cluster w/ variety of methods ● gpuDistClust
  • gpuSvmTrain and gpuSvmPredict ● R front end for Austin Carpenter's cuSVM
  • gpuMi ● B-spline based mutual information calculation
  • Other Functions ● gpuDist ● gpuMatMult ● gpuLr ● gpuQr ● gpuSolve
  • Future Functions ● From our new collaborator: Rapid Biologics ● gpuGlm – generalized linear model fit ● gpuLm – linear model fit ● gpuLsFit – least squares fit lsfit respectively
  • Results (single thread of execution)
  • How? ● Use nvcc to produce shared object with C calling convention
  • rinterface.h extern “C” void rSetDevice(const int * device);
  • rinterface.c #include<rinterface.h> #include<cuda.h> void rSetDevice(const int * device) { cudaSetDevice(*device); }
  • gpuSetDevice.R gpuSetDevice ← function(deviceId) { .C(“rSetDevice”, as.integer(deviceId)) }
  • Contributors ● Molecular & Behavioral Neuroscience Institute at University of Michigan ● Rapid Biologics, Seattle, Washington ● You!
  • Availability ● http://brainarray.mbni.med.umich.edu/brainarray/Rgpgpu ● http://cran.r-project.org/web/packages/gputools/index.htm ● bucknerj@umich.edu
  • References Carpenter,A. (2009) http://patternsonascreen.net/cuSVM.html. Daub,C. et al. (2004) Estimating mutual information using B-spline functions – an improved similarity measure for analysing gene expression data, BMC Bioinformatics, 5:118 Kaminski,M. et al. (2001) Evaluating causal relations in neural systems: granger causality, directed transfer function and statistical assessment of significance, Biol Cybern, Vol. 85, No. 2, 145—157.