diff options
author | Jim Plank <plank@cs.utk.edu> | 2014-01-24 16:50:41 -0500 |
---|---|---|
committer | Jim Plank <plank@cs.utk.edu> | 2014-01-24 16:50:41 -0500 |
commit | 9124ad138206efba650871cd8d27e9d051e55dfa (patch) | |
tree | dbcd83cf09035a9527d9db29d67d07be4d0a70f1 /README | |
parent | 9cca12d46fba0c80274685f2dde171bfacdcba73 (diff) | |
download | jerasure-9124ad138206efba650871cd8d27e9d051e55dfa.tar.gz |
Ran through all of the examples to make them current. I'll have to
do another sanity-checking pass, and fix multby_2 in the reed_sol code,
but then we're done.
Diffstat (limited to 'README')
-rw-r--r-- | README | 39 |
1 files changed, 20 insertions, 19 deletions
@@ -1,5 +1,7 @@ This is revision 2.0 of Jerasure. This is pretty much Jerasure 1.2 without the -original Galois Field backend. Version 2.0 links directly to GF-Complete. +original Galois Field backend. Version 2.0 links directly to GF-Complete, which +is more flexible than the original, and *much* faster, because it leverages SIMD +instructions. External Documentation: @@ -12,10 +14,9 @@ Custom usgae of GF-Complete is explained in this file (see below). NOTE: You must have GF-Complete installed in order to use Jerasure 2.0. -There are two directories: +There are two directories of source code: The src directory contains the jerasure code. - The Examples directory contains the example programs. The makefile assumes that Examples is a subdirectory of the home directory. @@ -33,7 +34,7 @@ Installing: This will install the examples under PREFIX/bin, the library under PREFIX/lib and the header files under PREFIX/include -See individual source file to determine what the examples do. +See individual source files to determine what the examples do. Inclusion of GF-Complete: @@ -44,8 +45,8 @@ determine the default field to use, if one is not specified. If you would like to explore a using a different Galois Field implementation, you can dynamically set the backend GF for a given word-size (w). -The new galois.[ch] exports the following functions to be used by applications -for dynamically setting the backend GF: +The new galois.c and galois.h export the following functions to be used by applications +for dynamically setting the back-end GF: 1.) galois_change_technique @@ -53,21 +54,25 @@ for dynamically setting the backend GF: void galois_change_technique(gf_t *gf, int w); + This is the recommended way for you to change techniques. + This function will take a pointer to a Galois field structure and set it as the current backend for all operations in GF(2^w). Note that you must specify 'w' here, since the internal GF structure is mostly opaque to Jerasure. Be sure to change the technique with the correct structure and word-size. - There are a few ways to get a pointer to a gf_t structure: via GF-Complete or - using the helper functions provided by Jerasure: galois_init_field and - galois_init_composite_field. + There are a few ways to get a pointer to a gf_t structure: GF-Complete gives three + primitives for this -- create_gf_from_argv(), gf_init_easy() and gf_init_hard(). + Please read the documentation on GF-Complete for how these work. By far, the + most powerful and easy is create_gf_from_argv(), which parses an argv-style + string. Otherwise, the most flexible is gf_init_hard(). - GF-Complete exposes create_gf_from_argv, gf_init_easy and gf_init_hard. See - the GF-Complete documentation for more detail on how to use those functions. - You can definitely create more complicated fields with the GF-Complete - initialization functions, but the two helper functions provided by Jerasure - (galois_init_field and galois_init_composite_field) can be used to create most - of the supported Galois Fields. + In galois.c/galois.h, we have defined galois_init_field(), which is pretty much + identical to gf_init_hard(), except it performs memory allocation with malloc(), + and galois_init_composite_field(), which facilitates creating composite fields. + + These are described below, but once again, we recommend using create_gf_from_argv() + or gf_init_hard() if you want to change your Galois field. 2.) galois_init_field @@ -149,10 +154,6 @@ For more information on how to change the backing fields for Jerasure, please re 2.) Examples/reed_sol_time_gf.c: Runs more thorough timing and validation tests for a backing GF (uses create_gf_from_argv to get gf_t pointer) - 3.) Examples/reed_sol_hard_time_gf.c: Runs more thorough timing and validation tests - for a backing GF (uses galois_init_field and galois_init_composite_field to get gf_t - pointer) - Performance: There are two performance-based test scripts: time_all_gfs_argv_init.sh and |