A work generator generates values to use as a start value of a table. Normally it sets the start and end value of the chain to the same value before feeding the chains into the device, but it is also intended as a means to load completed/half-completed chains.
These are currently implemented:
- random
- increment
- file
- lookup
- sort
- a51
- limit
- buckets
random
Uses a PRNG to generate start values
options are:
- prefix=size,value
- the size and value of a number of bits that shall be constant
- spread
- fill the work buffers with invalid made-up chains that appear to be partially complete, so that the startup time to get complete chains is zero and benchmarking is possible without waiting for an equilibrium to settle.
- seed=integer
- use a parameter to seed the prng and generate the same start values on each invocation
- limit=bignum
- only generate the amount of chains given in the argument. valid prefixes are K, M, G, k, m, g. big letters are in multiples of 1024, small letters in multiples of 1000.
increment
Each value is the successor of the previous start value.
- startbits=integer
- use the given amount of bits for the counter. the rest of the bits in the start value are determined by the used randomizer.
file
Read the start and end values from the disk.
options are:
- startbits
- bit width of the start values
- endbits
- bit width of the end values
- truncstart=lsb|msb
- truncate the start value at the least or most significant bit position
- truncend=lsb|msb
- truncate the end value at the least or most significant bit position
- select
- select a subset of the chains
- prefix
- the file base name of a split table file the name of the file
- limit=bignum
- limit the number of chains to the value in the argument. valid suffixes are K (1024), M, G, k (1000), m, g
- skip=bignum
- seek to a position in the source file before reading chains. valid suffixes as above.
- remove_after_read
- delete the file after all chains have been read
- quiet
- do not output the standard messages
lookup
Generate start values for chains that get generated during the lookup process
- source=generator
- the generator that provides the data points that should be looked up in the table. remember to add one more colon between its options
a51
Read a file and generate lookup chains at each bit position using a 64 bit segment. The number of chains generated is file_size_in_bytes * 8 - 64
- input=filename
- the input filename ascii the input is in hexadecimal text form.
sort
Sort the chains obtained from the sub generator.
- ram=integer
- the maximum of memory to allocate, in megabytes. if more data is waiting to be sorted, stxxl will be invoked which should be avoided,as it takes significantly longer.
- source=generator
- the subgenerator that provides the chain. do not forget extra colons.
limit
Reads only a subset of the chains provided by the subgenerator.
- limit=bignum
- the number of chains to read at most.
- source=generator
- the subgenerator from which to obtain the chains
buckets
Reads data from an ordered set of corresponding input files
- ram=megabytes
- the maximum amount of ram to use for in core sorting
- sort
- sort each bucket
- prefix=filename
- the files to read from. actual files then have the prefix prefix_0, prefix_1, prefix_2, ...
- parts=integer
- the number of buckets
