Table of Contents
Fetching ...

Fast Algorithms for the Computation of the Minimum Distance of a Random Linear Code

Fernando Hernando, Francisco D. Igual, Gregorio Quintana-Ortí

TL;DR

This work addresses the NP-hard problem of computing the minimum distance $d$ of random binary linear codes by introducing a family of optimized algorithms that reduce row additions and memory accesses while leveraging cache efficiency, parallel CPU cores, and SIMD instructions. Through a progression from a basic enumeration of information-set-based combinations to saved-additions and unrolled variants, the paper demonstrates substantial speedups over established tools such as Magma and Guava across single-core and multicore platforms. The authors provide extensive performance analyses, showing near-ideal scalability and significant runtime reductions, enabling rapid generation of new binary codes with improved minimum distances via matrix-product constructions. The methods are validated on multiple architectures, and the work includes plans for extending to distributed-memory systems and GPUs, along with public release of the source code.

Abstract

The minimum distance of a code is an important concept in information theory. Hence, computing the minimum distance of a code with a minimum computational cost is a crucial process to many problems in this area. In this paper, we present and evaluate a family of algorithms and implementations to compute the minimum distance of a random linear code over $\mathbb{F}_{2}$ that are faster than different current implementations. In addition to the basic sequential implementations, we present parallel and vectorized implementations that render high performances on modern architectures. The attained performance results show the benefits of the developed optimized algorithms, which obtain remarkable performance improvements compared with state-of-the-art implementations widely used nowadays.

Fast Algorithms for the Computation of the Minimum Distance of a Random Linear Code

TL;DR

This work addresses the NP-hard problem of computing the minimum distance of random binary linear codes by introducing a family of optimized algorithms that reduce row additions and memory accesses while leveraging cache efficiency, parallel CPU cores, and SIMD instructions. Through a progression from a basic enumeration of information-set-based combinations to saved-additions and unrolled variants, the paper demonstrates substantial speedups over established tools such as Magma and Guava across single-core and multicore platforms. The authors provide extensive performance analyses, showing near-ideal scalability and significant runtime reductions, enabling rapid generation of new binary codes with improved minimum distances via matrix-product constructions. The methods are validated on multiple architectures, and the work includes plans for extending to distributed-memory systems and GPUs, along with public release of the source code.

Abstract

The minimum distance of a code is an important concept in information theory. Hence, computing the minimum distance of a code with a minimum computational cost is a crucial process to many problems in this area. In this paper, we present and evaluate a family of algorithms and implementations to compute the minimum distance of a random linear code over that are faster than different current implementations. In addition to the basic sequential implementations, we present parallel and vectorized implementations that render high performances on modern architectures. The attained performance results show the benefits of the developed optimized algorithms, which obtain remarkable performance improvements compared with state-of-the-art implementations widely used nowadays.

Paper Structure

This paper contains 21 sections, 5 theorems, 14 equations, 3 figures, 5 tables, 5 algorithms.

Key Result

Lemma 2.1

Using the previous notation, if $g\le \frac{k}{3}$, then

Figures (3)

  • Figure 1: Performance (in terms of $10^{6}$ combinations per sec.) of the best implementations for all the linear codes on one core of cplex.
  • Figure 2: Performance (in terms of $10^{6}$ combinations per sec.) of the best implementations for all the linear codes on 6 cores of cplex.
  • Figure 3: Obtained speedups on both machines (cplex left; marbore right).

Theorems & Definitions (10)

  • Lemma 2.1
  • proof
  • Lemma 3.1
  • proof
  • Lemma 3.2
  • proof
  • Lemma 3.3
  • proof
  • Lemma 3.4
  • proof