Gibraltar: A Reed-Solomon coding library for storage applications on programmable graphics processors

  • Authors:
  • Matthew L. Curry;Anthony Skjellum;H. Lee Ward;Ron Brightwell

  • Affiliations:
  • Sandia National Laboratories, P.O. Box 5800, Albuquerque, NM 87185-1319USA;Computer and Information Sciences, The University of Alabama at Birmingham, 115A Campbell Hall, 1300 University Blvd, Birmingham, AL 35294-1170, USA;Sandia National Laboratories, P.O. Box 5800, Albuquerque, NM 87185-1319USA;Sandia National Laboratories, P.O. Box 5800, Albuquerque, NM 87185-1319USA

  • Venue:
  • Concurrency and Computation: Practice & Experience
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reed–Solomon coding is a method for generating arbitrary amounts of erasure correction information from original data via matrix–vector multiplication in finite fields. Previous work has shown that modern CPUs are not well-matched to this type of computation, requiring applications that depend on Reed–Solomon coding at high speeds (such as high-performance storage arrays) to use hardware implementations. This work demonstrates that high performance is possible with current cost-effective graphics processing units across a wide range of operating conditions and describes how performance will likely evolve in similar architectures. It describes the characteristics of the graphics processing unit architecture that enable high-speed Reed–Solomon coding. A high-performance practical library, Gibraltar, has been prototyped that performs Reed–Solomon coding on graphics processors in a manner suitable for storage arrays, along with applications with similar data resiliency needs. This library enables variably resilient erasure correcting codes to be used in a broad range of applications. Its performance is compared with that of a widely available CPU implementation, and a rationale for its API is presented. Its practicality is demonstrated through a usage example. Copyright © 2011 John Wiley & Sons, Ltd. (Gibraltar is available at , along with sample applications to test it.)