Today we are releasing LibGeoDecomp, version 0.3.0. This release is the culmination of eight months of work, consisting of over 700 commits and 9000 lines of new code. We have added a plethora of new features, the most exciting ones being support for Blue Gene/Q, the Xeon Phi (via the new HPX backend), a revamped user code API, and an alternative struct of arrays (SoA) memory layout. Here is a more complete list of changes:

User Visible Changes

  • switched to Boost license
  • added HpxSimulator as an alternative multi-node Simulator, runs on Intel Xeon Phi
  • added facility to specify expected node performance (good for heterogeneous systems, e.g. xeon phi + regular xeon CPUs)
  • user code API has been reimplemented so that it is now more consistent, consise. Also, it is now forward-compatible and can supply default settings
  • added LibFlatArray to implement the 0-overhead interface between library and user code
  • added SoAGrid (based on LibFlatArray) as a drop-in replacement for DisplacedGrid
  • added soa_array (based on LibFlatArray) for faster n-body codes
  • remote live steering
  • remote in situ visualization via VisIt's libsim
  • new input/output plugins: QtWridgetWriter will plot 2d data to a Qt widget live at runtime
  • Writer API was refactored to decouple Writers from Simulators
  • Steerer now uses an interface identical to ParallelWriter
  • tweaked template usage to work with xlc++ (required for BG/Q support)
  • support for clang
  • TypemapGenerator supports Boost.Serialization
  • major speedup for TypemapGenerator: will now run in seconds, not minutes
  • directory layout was adapted to the growth of the different subsystems. new directories are: src/geometry, src/storage and src/communication.

Internal Changes

  • Topology was reimplemented to work with xlc++
  • dropped SuperVector, SuperSet, SuperMap in favor of their stdlib equivalents, moved previous member functions to solitary functions
  • improved CMake scripts to make LibGeoDecomp build out of the box on more systems
  • reimplemented FloatCoord to get rid of virtual d-tor
  • significantly increased coverage of performance tests
  • Chronometer has been rewritten, can now include arbitrary numbers of custom events for the sake of creating detailed execution time histograms
  • cell plotting infrastructure tuned for efficiency
  • fixed some memory leaks reported by Valgrind
  • added prototypic OpenCL plugin
  • Region: added infrastructure required to iterate through them with multiple threads
  • Steerer interface now allows for the steerers to end a running simulation (good for writing adaptive solvers)
  • added tools/codequality/custom_checks to find common quality issues

News archive »

last modified: Wed Oct 26 16:51:19 2016 +0200