Today we are proudly shipping two new releases of our libraries LibGeoDecomp and LibFlatarray. These releases are our first to deliver peta-scale performance on the world's fastest supercomputers. Together they represent the culmination of ten months of work and more than 800 commits of an alliance of researchers from the Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) and Louisiana State University (LSU).

LibGeoDecomp is a leading solution for highly scalable, portable, and efficient computer simulations. It supports various simulation models, including stencil codes, particle in cell (PIC), molecular dynamics, and n-body codes. LibFlatArray is a C++ Struct of Arrays (SoA) container library with an object-oriented interface and support for auto-vectorization. Both libraries available for download here and are released under a liberal free, open source software license (the Boost licence).

LibGeoDecomp 0.4.0 Release Notes Performance achieves peta-scale performance (read: petaflops) on ORNL's Titan and JSC's JUQUEEN supercomputers

improved support for SoA (Struct of Array) storage in most backends

auto-vectorization (via bundled LibFlatArray 0.2.0)

added CUDAStepper (and utility classes CUDAGrid, CUDAArray, CUDARegion...); CUDAStepper is currently optimized for n-body codes New Example Codes unstructured grid Game of Life (Fortran implementation, courtesy of Zach Byerly)

red-black Gauss Seidel solver (courtesy of Christopher Bross)

new Voronoi demo illustrates out finite difference/finite element capabilities

global collectives (stencil code which leverages the Writer/Steerer infrastructure to gather a global view of the grid and set parameters accordingly)

experimental Adaptive Mesh Refinement (AMR) example IO reloaded the new IO interface (Selectors) greatly simplifies adding IO modules to simulations: it replaces several previous interfaces (in SiloWriter, SerialBOVWriter, BOVWriter, VisItWriter, QtWidgetWriter, PPMWriter) and reduces the amount of wire-up code to almost zero

Selectors can use Filters for custom, on the fly data conversion

API (APITraits) is now more expressive, user can opt to specify more properties of the simulation data (e.g. physical grid dimensions) to increase the fidelity of output

new SiloWriter for structured/unstructured/point meshes Improved Support for Complex, Irregular Codes various updates and bugfixes for the HPX backend

Boost.Serialization can no be used with the MPI backends, too (previously only the HPX backend supported them)

new MultiContainerCell eases implementation of multi-physics codes; users can compose different compose multiple container types, each model will be able to access the other containers

BoxCell makes writing n-body codes much simpler by providing wrappers for particle iteration and transport

new Voronoi mesher aids unstructured mesh codes with uniform cell distributions Geometry Subsystem new domain decomposition techniques: checkerboarding and PT-Scotch (courtesy of Dominik Thoennes)

new convenience functions for coordinate classes (Coord/FloatCoord) Build System easy integration into 3rd party software: ships with CMake and pkg-config modules

CMake scripts now use idiomatic -DWITH_FOO=true pattern to select features

all configuration-specific files moved to build dir, enables multi-configuration builds General Improvements more documentation

code quality: increased unit test coverage, added integration tests, now testing on Mac OS X, too, fixed compiler warnings, improved const correctness and type safety, and much more LibFlatArray 0.2.0 Release Notes updated API: more natural usage while delivering same performance as old API accessor (soa_accessor) is now self-contained, added soa_accessor_light which uses an external index variable, but is faster than soa_accessor when using NVCC to generate device code

preliminary support for auto-vectorization for SSE, AVX, and QPX (on BG/Q) via short_vector overloads

added aligned allocator for portable allocation of aligned memory

instantiation of grid sizes is now configurable this change greatly improves compilation speed for most codes

added api_traits to allow the user to optionally configure how LFA instantiates its types

Downloads

Version Date Size MD5 File 0.4.0 2014.10.27 766090 19810f47748f9b7b52a73179a3a98a30 libgeodecomp-0.4.0.tar.bz2 1022767 b9bb28379ee61e9be89d56e17e71eb17 libgeodecomp-0.4.0.tar.gz 0.2.0 2014.10.27 34193 2bcf8b8c33a3d729155be48e47be3d04 libflatarray-0.2.0.tar.bz2 41804 cd491e9f8f7e60ad4a9fd0947e7b506d libflatarray-0.2.0.tar.gz

News archive »