Accelerating XOR-based Erasure Coding using Program Optimization Techniques

08/05/2021
by   Yuya Uezato, et al.
0

Erasure coding (EC) affords data redundancy for large-scale systems. XOR-based EC is an easy-to-implement method for optimizing EC. This paper addresses a significant performance gap between the state-of-the-art XOR-based EC approach (with 4.9 GB/s coding throughput) and Intel's high-performance EC library based on another approach (with 6.7 GB/s). We propose a novel approach based on our observation that XOR-based EC virtually generates programs of a Domain Specific Language for XORing byte arrays. We formalize such programs as straight-line programs (SLPs) of compiler construction and optimize SLPs using various optimization techniques. Our optimization flow is three-fold: 1) reducing operations using grammar compression algorithms; 2) reducing memory accesses using deforestation, a functional program optimization method; and 3) reducing cache misses using the (red-blue) pebble game of program analysis. We provide an experimental library, which outperforms Intel's library with 8.92 GB/s throughput.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/09/2023

Learning to compile smartly for program size reduction

Compiler optimization passes are an important tool for improving program...
research
01/22/2020

Automatically Harnessing Sparse Acceleration

Sparse linear algebra is central to many scientific programs, yet compil...
research
09/28/2021

Learning to Superoptimize Real-world Programs

Program optimization is the process of modifying software to execute mor...
research
10/20/2020

Revisiting Huffman Coding: Toward Extreme Performance on Modern GPU Architectures

Today's high-performance computing (HPC) applications are producing vast...
research
01/15/2018

Cobra: A Framework for Cost Based Rewriting of Database Applications

Database applications are typically written using a mixture of imperativ...
research
11/08/2019

nanoBench: A Low-Overhead Tool for Running Microbenchmarks on x86 Systems

We present nanoBench, a tool for evaluating small microbenchmarks using ...
research
09/13/2017

OpenMP GNU and Intel Fortran programs for solving the time-dependent Gross-Pitaevskii equation

We present Open Multi-Processing (OpenMP) version of Fortran 90 programs...

Please sign up or login with your details

Forgot password? Click here to reset