Changes between Version 2 and Version 3 of Status/May11
- Timestamp:
- 04/20/11 05:29:46 (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Status/May11
v2 v3 47 47 * 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! 48 48 49 == The Parallel HaskellProject ==49 == The Parallel GHC Project == 50 50 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. 51 Microsoft 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) 56 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. 52 57 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. 58 For more details, see the '''link:'''parallel GHC project entry. 56 59 57 60 == Data Parallel Haskell == 58 61 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''' 60 63 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. 62 65 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. 64 67 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 66 72 67 73 == Installers == … … 74 80 75 81 == Bibliography == 82 83 '''TODO: Remove redundant entries''' 76 84 77 85 * [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/.
