
Dear Haskellers, We're looking for outstanding candidates for an internship in Spring 2011. The internship will be in a suburb of Boston (Hudson, MA). Graduate students and talented undergraduates are welcome to apply, but time is a bit short. We are a small research group run directly by the CTOhttp://www.intel.com/pressroom/kits/bios/plowney.htmof Intel's Developer Products Division. Our group works on high-level parallel programming toolshttp://software.intel.com/en-us/articles/intel-concurrent-collections-for-cc...(including for Haskellhttp://software.intel.com/en-us/blogs/2010/05/27/announcing-intel-concurrent...) and applies binary translation http://www.pintool.org/ to various problems; also we collaborate closely with Intel's various developer tools teams (Cilk http://supertech.csail.mit.edu/cilk/, TBBhttp://www.threadingbuildingblocks.org/, etc). We are looking for someone to work on a new, self-contained Haskell project to create an eDSL that targets the ArBB virtual machine (VM) for vectorization. One possible solution is to adapt existing projects that target CUDA (e.g. accelerate http://hackage.haskell.org/package/accelerateand Nikola <%20http://www.eecs.harvard.edu/%7Emainland/projects/nikola/>). Array Building Blocks (ArBB)http://software.intel.com/en-us/articles/intel-array-building-blocks/is an interesting and ambitious project that attempts to bring metaprogramming and eDSLs to the masses. It's based on research by Michael Mccool at Waterloo that he used to found a company, RapidMindhttp://en.wikipedia.org/wiki/RapidMind, which was later bought by Intel. The basic idea is that the VM abstracts over the thread and vectorization capabilities of CPUs, GPUs, and other manycore chipshttp://www.intel.com/pressroom/archive/releases/20100531comp.htm. The VM defines a restricted compute language and provides a managed (yes, garbage collected) environment. Using the normal eDSL and metaprogramming tricks the user writes a portable program in a host language streams ASTs to the VM at runtime. These vector programs include the usual aggregate array operations and high level transformations (map, fold, etc), and the VM can perform fusion/deforestation optimizations while JITting vector codes. The VM API for generating programs is a simple C APIhttp://software.intel.com/sites/products/documentation/arbb/arbb_manual_win/...that can be called from anywhere. The ArBB team is anxious to demonstrate language frontends for other languages, and Haskell is a good candidate. The official requisition will be available at the Intel Jobs site shortly, but in the meantime if you are interested, please forward your CV to me at ryan.r.newton@intel.com . Cheers, -Ryan LOCATION: Hudson, MA DURATION: 3-6 Months, flexible START: Some flexibility, ~January, 2011 EXPERIENCE: Expert Haskell/GHC programmer. Interest in research a plus. LOCATION NOTE: With a car it is possible to live in Cambridge or Boston and reverse-commute to our location. (Working offsite two days a week is possible.)