Sunday, August 26, 2007

Hypothetical Center for Algorithm Engineering

I was thinking the other day: we have great examples of centers for theory/math (IAS, DIMACS, IMA, IPAM), but what would be an interesting center for algorithm engineering? Do we need one, and assuming we did, how would we organize it? Say we do. Here is a potential organization: a few resident professors with responsibility, some visitors, dozens of well-paid, top class research programmers.
  • Top algorithms researchers visit the center for say 3 or 6 months at a time, and spend time interacting with the research programmers to implement a set of algorithms for a problem. This would include "their" algorithms of course, but ideally, would force the researchers to spend time understanding other competing algorithms and working with the research programmers to find the best implementations. It will also help the researchers learn a few tricks how to build programs in practice and may be ego soothing (my algorithm triumphs) or ego seething (my algorithm is no better than others').
  • Graduating PhD students who don't want research career, but want to do more thinking than one finds in average software engineer job with a software company, may find useful careers as research programmers.
Let me stop before I take all this too seriously.

12 Comments:

Anonymous Anonymous said...

What is a "research programmer"? Do they exist elsewhere?

Graham

6:47 AM  
Blogger rgrig said...

In Ireland, at UCD we do have `research programmers'. They do not have a PhD and have pay rates similar to a postdoc. They develop research applications. In fact, I would say it's not that different from what a PhD student does.

9:47 AM  
Blogger Michael Mitzenmacher said...

It's hard to figure out what such a center should look like -- how to bring people together from different areas to really collaborate in a fruitful way.

Harvard is developing something along these lines -- the Initiative in Innovative Computing, web page at http://iic.harvard.edu/.

11:50 AM  
Blogger rgrig said...

http://casl.ucd.ie/

3:12 PM  
Anonymous Anonymous said...

Microsoft Research has "Research Software Development Engineers (RSDE) "
http://research.microsoft.com/aboutmsr/jobs/fulltime/technical.aspx
and "Non-PhD Researcher"
http://research.microsoft.com/aboutmsr/jobs/fulltime/researcher.aspx

Yahoo research and IBM research (and more) also have similar positions, mostly called "research engineers"
http://research.yahoo.com/static_jobs

-Yihua

11:54 AM  
Anonymous Anonymous said...

Cute idea. To make it work, I think the key part would be the answer to the following question:

What value does the world get from the creation of these specific implementations?

My sense is that wrestling with this question drives these kinds of things to one of two models:

* The library of reference implementations, or
* A sharp focus on a specific application

But maybe there's another route...

Francis

4:03 AM  
Anonymous Anonymous said...

I think that a nice example close to what you were proposing is what Kurt Mehlhorn at MPI did in the last years with tons of researchers, PhDs and post-docs involved. Everyone was "invited" to switch from theory to practice every day, and "test" her own (new) algorithms against her (old) competitors to deliver something useful/concrete and/or to find new theoretical problems. Many "algorithmic engineering" papers came out from this experience. The most interesting outcome is probably the LEDA library. Paolo

12:46 PM  
Anonymous Anonymous said...

It would be very useful to setup some ambitious goal. For example, working on extending BOOST/STL libraries towards some uncovered topics in DM, ML, IR, Streaming.

5:46 AM  
Blogger metoo said...

* "research programmer" is what I coined for a concept already around in a few places, thanks to the few pointers above.

* Mike Goodrich points out that there was a center for algorithm engg at JHU and yes, the internet has its
echo

* casl@ucd and iic@harvard do have a component of putting experts with computational problems and goal together, but don't seem to be centers of algorithm engg per se.

* Francis, yes, the two directions are, build common lib and/or focus on specific applications. We have seen some of the former already as Paolo comments, but I would like to see more of the latter.

1:02 PM  
Anonymous Anonymous said...

i was reminded of this post of yours when i saw this mail through DMANET today.

here's a link you've probably seen before:

http://www.algorithm-engineering.de/

7:32 AM  
Blogger FreeCelebrityStuffs said...

We decided to tackle the subject of engineerinfonet because, till recently, it was so difficult to get sufficient, accurate information on the subject.

8:47 PM  
Anonymous Anonymous said...

you have a nice site. thanks for sharing this site. you can download lots of ebooks from here

http://feboook.blogspot.com

8:46 PM  

Post a Comment

<< Home