« MiniZinc version 1.0 released! | Main

Gecode version 3.1 released

Gecode version 3.1 is released. The changes are:
Changes in Version 3.1.0 (2009-05-20)
This release introduces parallel search, features improved memory management (can double efficiency on MacOS X), and provides a reusable command line driver upon popular request. And, of course, some this and that.
  • Kernel
    • Performance improvements
      • Cache memory blocks from deleted spaces. This hardly increases peak memory consumption. It improves performance on Windows and Linux only by up to 5%, but on MacOS by 50% in some cases (this improvement is absolutely essential for parallel execution). (major)
  • Search engines
    • Additions
      • Added parallel search engines for DFS, BAB, and Restart (but not LDS). Please make sure to read the section "Parallel search" in "Modeling with Gecode". (major) Details
    • Other changes
      • The stop function of stop objects now also takes a second argument of type Search::Options. This is in particular useful for decisions that involve the number of threads used for search. (minor)
  • Finite domain integers
    • Additions
      • Added a wait propagator: executes a function when a variable (or variables) become(s) assigned. (minor)
    • Other changes
      • The INT_VAL_MED value selection now consistently selects the greatest element in the domain not greater than the median. (minor)
  • Finite integer sets
    • Additions
      • Added a wait propagator: executes a function when a variable (or variables) become(s) assigned. (minor)
    • Other changes
      • The set constraint sequentialUnion has been renamed to sequence. (minor)
  • Script commandline driver
    • Additions
      • Added a new module "driver" as a commandline driver for scripts. This is due to popular request: most people have been using the support functionality for examples anyway. This function is now wrapped into a proper module (and Example is now called Script to be more general). See "Modeling with Gecode" for documentation. (major)
    • Other changes
      • If Gist is not available, -mode gist is the same as -mode solution. Invocation with -help also prints information about how Gecode has been configured. (minor)
  • Support algorithms and datastructures
    • Additions
      • Added a tiny portable thread package specifically tailored to the needs for parallel search. Unfortunately, other portable thread packages have just too many issues. (minor)
      • Support::quicksort and Support::insertion support using the less than operator for the sort order by leaving out the comparator object. (minor)
  • Example scripts
    • Additions
      • Added new example for equidistant frequency permutation arrays (EFPA). (minor)
    • Other changes
      • The parameters of the Hamming Codes example are now configurable through command line options (instead of hard-coded). (minor)
  • Gist
    • Other changes
      • Small user interface changes: disable search from hidden nodes, add depth information to status bar, and add statistics for subtrees (available from the node context menu and the Node menu). (minor)
      • Easily add multiple inspectors to Gist. Inspectors are not exclusive any longer, you can select any combination of them to respond to clicks or solutions simultaneously. (minor)
    • Bug fixes
      • Fixed a dead lock that could occur when closing the Gist main window while search is still running. (minor)
      • The inspectors are finalized before Gist exits. This fixes a bug where (at least on Mac OS) some memory was not freed in the correct order. (minor)
      • Gist now correctly centers the current node after search has finished. (minor)
Also, version 1.6 of Gecode/FlatZinc is released to support for MiniZinc version 1.0. See MiniZinc version 1.0 released! for more about MiniZinc version 1.0.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)