Needed .txt
parent
b5ff7900d8
commit
7a502868f1
40
README.txt
40
README.txt
|
@ -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
|
||||
|
@ -174,3 +175,4 @@ the test run of
|
|||
is recorded as this in PERF.txt:
|
||||
|
||||
_12_3_8_128_65536_-m_SPLIT_8_4_-r_SSE_- 2813.34
|
||||
|
||||
|
|
Loading…
Reference in New Issue