looking for research problems
John Owens
jowens at ece.ucdavis.edu
Wed Nov 14 10:23:19 PST 2012
Greetings, I enjoyed the discussion on the concall this morning. I
promised to follow up with a note explaining our interest.
My name is John Owens and I'm an associate professor at UC Davis,
where my group focuses on GPU computing. We have substantial
experience in the field, with particular focus on fundamental data
structures and algorithms, multi-GPU computing, and applications. I've
appended pointers to some of our work at the end of this note. We have
been sponsored by all three of AMD, Intel, and NVIDIA, though for
different projects, as well as NSF and the DOE. I'm also a NVIDIA CUDA
Fellow and slated to be on the upcoming academic advisory board for
OpenCL.
Opening up Java to GPUs is a huge task, and there's an enormous amount
of engineering effort and monkeying with the compiler that is really
important that we're not so suited to do. I'm happy that many of you
have already started this work! What we want to find is the hard
research problems. Where we've had a lot of success is "mapping X to a
GPU programming model", where "X" is complex algorithms and/or data
structures.
My broad read of other work that's been done with languages and GPUs
is that it's mostly been done from the language side, where there's
clearly a lot of interesting work to be done, but at the end of the
day, the GPU is used to run "map"-style computation that is
straightforward to parallelize. We'd like to broaden the scope of what
should be run on a GPU: more irregular computation that is harder to
parallelize, a broader set of data structures, and so on. For
instance, we've recently done some work on hash tables on GPUs. We're
currently starting a project on large graph algorithms. The scan
primitives are rarely core components of language-mapping efforts,
though they should be. These are the sorts of tasks that aren't
usually addressed in the GPU-language efforts that I've seen.
NSF has an upcoming call for proposals in which I am quite interested.
http://www.nsf.gov/funding/pgm_summ.jsp?pims_id=504842&org=CISE&from=home
I am considering two areas of focus, both inspired by my current
sabbatical at Twitter (where we're working in Scala atop the JVM):
1) Looking at mapping a higher-level language to the GPU. I think this
is exactly the focus of Sumatra, though the functional nature of
Scala makes it attractive as well.
2) Looking at making GPUs useful in the data center. Twitter uses lots
of large open-source components like memcached or various databases
or Hadoop. Where does the compute go in a data center and can we
make it more efficient / faster by mapping it to the GPU.
This CFP requires that I submit proposals with at least one (academic)
partner; they don't accept sole PI proposals, so I'll be looking for
folks who have language and data center expertise, respectively.
I am knowledgeable about the GPU computing literature in general
(though not an expert on Java-specific GPU work like Aparapi,
Rootbeer, etc., where others on this list are better suited) and am
happy to address any questions on the research side.
I hope we can find some common ground for future collaboration!
(Please note that I'm only on the daily digest for this email list, so
please copy me on any replies so I can address them more quickly.)
JDO
======
http://www.ece.ucdavis.edu/~jowens/
http://www.ece.ucdavis.edu/~jowens/research.html
http://www.ece.ucdavis.edu/~jowens/pubs.html
Notable work:
- comparison-based sort (e.g. strings)
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=1085
- data compression (bzip2)
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=1087
- hash tables
http://www.sciencedirect.com/science/article/pii/B9780123859631000046
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=973
- task parallelism on GPU:
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=1091
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=1036
- MapReduce (first multi-GPU MR, first out-of-core MR)
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=1051
- the scan primitives (first O(n) scan, first segmented scan, SpMV, quicksort)
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=1041
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=915
- MPI (first GPU MPI work)
http://www.idav.ucdavis.edu/publications/print_pub?pub_id=959
--
John Owens
Associate Professor, Electrical and Computer Engineering
University of California, Davis
One Shields Avenue, Davis, CA 95616
http://www.ece.ucdavis.edu/~jowens/
More information about the sumatra-dev
mailing list