Changes between Version 2 and Version 3 of Status/May11


Ignore:
Timestamp:
Apr 20, 2011 12:29:46 PM (3 years ago)
Author:
igloo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/May11

    v2 v3  
    4747 * The "new back end" is still under construction.  This is a rewrite of the part of GHC that turns STG syntax into C--, i.e. the bit between the Core optimisation passes and the native code generator.  The rewrite is based on [[http://research.microsoft.com/en-us/um/people/simonpj/papers/c--/dfopt.pdf Hoopl]], a data-flow optimisation framework.  Ultimately this rewrite should enable better code generation.  The new code generator is already in GHC, but turned off by default; you get it with the flag `-fuse-new-codegen`.  Don't expect to get better code with this flag yet! 
    4848 
    49 == The Parallel Haskell Project == 
     49== The Parallel GHC Project == 
    5050 
    51 Microsoft Research is funding a 2-year project to develop the real-world use of parallel Haskell. The project has recently kicked off with four industrial partners, with consulting and engineering support from Well-Typed. Each organisation is working on its own particular project making use of parallel Haskell. The overall goal is to demonstrate successful serious use of parallel Haskell, and along the way to apply engineering effort to any problems with the tools that the organisations might run into. 
     51Microsoft Research is funding a 2-year project to develop the real-world use of parallel Haskell. The project is now underway with four industrial partners: 
     52 * Dragonfly (New Zealand) 
     53 * IIJ Innovation Institute Inc. (Japan) 
     54 * Los Alamos National Laboratory (USA) 
     55 * Willow Garage Inc. (USA) 
     56with consulting and engineering support from Well-Typed. Each organisation is working on its own particular project making use of parallel Haskell. The overall goal is to demonstrate successful serious use of parallel Haskell, and along the way to apply engineering effort to any problems with the tools that the organisations might run into. 
    5257 
    53 We will shortly be announcing more details about the partner organisations and their projects. For the most part the projects are scientific and focus on single-node SMP systems, though one of the partners is working on network servers and another partner is very interested in clusters. In collaboration with Bernie Pope, the first tangible results from the project will be a new MPI binding, which will appear on hackage shortly. 
    54  
    55 Progress on the project will be reported to the community. Since there are now multiple groups in the community that are working on parallelism, the plan is to establish a parallel Haskell website and mailing list to provide visibility into the various efforts and to encourage collaboration. 
     58For more details, see the '''link:'''parallel GHC project entry. 
    5659 
    5760== Data Parallel Haskell == 
    5861 
    59 Since the last report, we have continued to improve support for nested parallel divide-and-conquer algorithms.  We started with [[http://darcs.haskell.org/packages/dph/dph-examples/spectral/QuickHull/dph/QuickHullVect.hs QuickHull]] and are now working on an implementation of the [[http://darcs.haskell.org/packages/dph/dph-examples/real/BarnesHut/Solver/NestedBH/Solver.hs Barnes-Hut]] ''n''-body algorithm.  The latter is not only significantly more complex, but also requires the vectorisation of recursive tree data-structures, going well beyond the capabilities of conventional parallel-array languages.  In time for the stable branch of GHC 7.0, we replaced the old, per-core sequential array infrastructure (which was part of the sub-package `dph-prim-seq`) by  the [[http://hackage.haskell.org/package/vector vector package]] — vector started its life as a next-generation spin off of `dph-prim-seq`, but now enjoys significant popularity independent of DPH.  
     62'''Manuel: Any status update? Previous entry below''' 
    6063 
    61 The new handling of INLINE pragmas as well as other changes to the Simplifier improved the stability of DPH optimisations (and in particular, array stream fusion) substantially.  However, the current candidate for GHC 7.0.1 still contains some performance regressions that affect the DPH and [[http://hackage.haskell.org/package/repa Repa]] libraries and to avoid holding up the 7.0.1 release, we decided to push fixing these regressions to GHC 7.0.2.  More precisely, we are planning a release of DPH and Repa that is suitable for use with GHC 7.0 for the end of the year, to coincide with the release of GHC 7.0.2.  From GHC 7.0 onwards, the library component of DPH will be shipped separately from GHC itself and will be available to download and install from Hackage as for other libraries. 
     64  Since the last report, we have continued to improve support for nested parallel divide-and-conquer algorithms.  We started with [[http://darcs.haskell.org/packages/dph/dph-examples/spectral/QuickHull/dph/QuickHullVect.hs QuickHull]] and are now working on an implementation of the [[http://darcs.haskell.org/packages/dph/dph-examples/real/BarnesHut/Solver/NestedBH/Solver.hs Barnes-Hut]] ''n''-body algorithm.  The latter is not only significantly more complex, but also requires the vectorisation of recursive tree data-structures, going well beyond the capabilities of conventional parallel-array languages.  In time for the stable branch of GHC 7.0, we replaced the old, per-core sequential array infrastructure (which was part of the sub-package `dph-prim-seq`) by  the [[http://hackage.haskell.org/package/vector vector package]] — vector started its life as a next-generation spin off of `dph-prim-seq`, but now enjoys significant popularity independent of DPH.  
    6265 
    63 To catch DPH performance regressions more quickly in the future, Ben Lippmeier implemented a performance regression testsuite that we run nightly on the HEAD.  The results can be enjoyed on the GHC developer mailing list. 
     66  The new handling of INLINE pragmas as well as other changes to the Simplifier improved the stability of DPH optimisations (and in particular, array stream fusion) substantially.  However, the current candidate for GHC 7.0.1 still contains some performance regressions that affect the DPH and [[http://hackage.haskell.org/package/repa Repa]] libraries and to avoid holding up the 7.0.1 release, we decided to push fixing these regressions to GHC 7.0.2.  More precisely, we are planning a release of DPH and Repa that is suitable for use with GHC 7.0 for the end of the year, to coincide with the release of GHC 7.0.2.  From GHC 7.0 onwards, the library component of DPH will be shipped separately from GHC itself and will be available to download and install from Hackage as for other libraries. 
    6467 
    65 Sadly, Roman Leshchinskiy has given up his full-time engagement with DPH to advance the use of Haskell in the financial industry.  We are looking forward to collaborating remotely with him. 
     68  To catch DPH performance regressions more quickly in the future, Ben Lippmeier implemented a performance regression testsuite that we run nightly on the HEAD.  The results can be enjoyed on the GHC developer mailing list. 
     69 
     70  Sadly, Roman Leshchinskiy has given up his full-time engagement with DPH to advance the use of Haskell in the financial industry.  We are looking forward to collaborating remotely with him. 
     71 
    6672 
    6773== Installers == 
     
    7480 
    7581== Bibliography == 
     82 
     83'''TODO: Remove redundant entries''' 
    7684 
    7785 * [Bryan] "A brief tale of faster equality", Bryan O'Sullivan blog post, Oct 2010, http://www.serpentine.com/blog/2010/10/19/a-brief-tale-of-faster-equality/.