GBLA

GBLA - A Groebner Basis Linear Algebra Package. GBLA (Groebner Basis Linear Algebra) and is the first plain C open source package available for specialized linear algebra in Groebner basis-like computations. Starting from the ideas of Faugere and Lachartre (FL) we further exploit underlying structures of those taking advantage of block patterns by using a special data structure called multilines. Moreover, we discuss a new order of operations for the reduction process. Multiline data structures are also very convenient to manage efficiently the cache while at the same time reducing memory overhead. The code is optimized for prime fields of various size using SIMD vectorization. In various different experimental results we show that GBLA performs better than FL or Magma in sequential computations (up to 40% faster) and scales much better than FL for a higher number of CPU cores: On 32 cores we reach a scaling of up to 26, GBLA is up to 7 times faster than FL. Further, GBLA can be used with different parallel schedulers. We also developed a new advanced storage format that exploits the fact that our matrices are coming from Groener basis computation, shrinking storage by a large factor. A huge database of our matrices is freely available with GBLA.