Jim Plank's Software

Information Theory Explorations

Chao Tian, James S. Plank and Brent Hurst, ``An Open-Source Toolbox for Computer-Aided Investigation on the Fundamental Limits of Information Systems, Version 0.1,'' https://github.com/ct2641/CAI/releases/tag/0.1, October, 2019. Also available as a paper at https://arxiv.org/abs/1910.08567.

Erasure Coding and Galois Field Arithmetic:

GF-Complete and Jerasure version 2.0 have been removed from web sites at the University of Tennessee and bitbucket.org. The source code of both projects have been archived for non-commercial use at http://web.eecs.utk.edu/~jplank/plank/papers/Jerasure-2-0-Archive.pdf and http://web.eecs.utk.edu/~jplank/plank/papers/GF-Complete-Archive.pdf

On this page I (James Plank) am providing notice that:

If you wish to cite GF-Complete or Jerasure in a paper, please cite their technical report versions: Over the years, I have exported multiple Galois Field arithmetic implementations, and multiple revisions of Jerasure. Here are their descriptions:

Other software for Erasure Coding

  • Open Source Encoder and Decoder for SD Erasure Codes - Revision 2.0 -- these are from my 2014 TOS paper with Mario Blaum. The code here depended on GF-Complete, which has been removed from my web sites. To make use of these, you will need to port them to a different Galois Field arithmetic library.
  • Open Source Encoder and Decoder for SD Erasure Codes -- these are from my 2013 FAST paper with Mario Blaum and Jim Hafner. The code here depended on GF-Complete, which has been removed from my web sites. To make use of these, you will need to port them to a different Galois Field arithmetic library.

  • Uber-CSHR and X-Sets: C++ Programs for Optimizing Matrix-Based Erasure Codes for Fault-Tolerant Storage Systems, December, 2010. These are the programs for my 2012 DSN paper.


    Tutorial Material for Erasure Coding

    To make best use of these codes, please read the following tutorial material:

    IBP/Lors/LoCI

    All the LoCI software may be found at the LoCI web site.

    Jgraph

    Jgraph is a program that takes the description of a graph or graphs as input, and produces a postscript file on the standard output. Jgraph is ideal for plotting any mixture of scatter point graphs, line graphs, and/or bar graphs, and embedding the output into LaTeX, or any other text processing system that can read postscript.

    Ickp

    Ickp is a library that enables users of the Intel iPSC/860 to checkpoint the execution state of their programs to disk. The major use for ickp is to provide fault-tolerance and/or coarse-grained job swapping to iPSC/860 users.

    Libckpt

    Libckpt is a portable checkpointing tool for Unix. It provides a mechanism for enabling fault-tolerance for long-running programs. Libckpt implements most optimizations that have been proposed to improve the performance of checkpointing. Additionally, it implements ``user-directed'' checkpointing, a new optimization unique to Libckpt.

    Applications

    This page contains pointers to various application programs that I have used for checkpointing.

    Libfdr

    This is a library that contains the red-black tree, doubly-linked list and fields code below. It was updated in 1999, and is easier to use than the previous code that I had. The old code may be obtained from the links below, but I recommend that you use this code.

    Red-Black Tree Code

    This contains code for using generic red-black trees. Red-black trees are a dynamic data structure in which all operations are guaranteed to perform in log time. The code is ansi or non-ansi C, and is very easy to use.

    Dlist: Code for Doubly-Linked Lists

    This contains C code for using generic doubly-linked lists.

    Fields: Code for fields processing

    This makes input processing in C easier, and is used in CS360/CS460.