Command Lines
Command Lines
--------------------------------------------------------------------------------
General Usage:
Examples:
Run a Pi benchmark 500 million digits and skip any startup warnings:
Compute log(2) to 100 billion digits using 60GB ram and 4 drives in raid 0:
y-cruncher custom log:2 -dec:100b -mode:swap -M:60g -swap:raid0 g:/ h:/ i:/ j:/
The command line options described here only cover a subset of y-cruncher's full
functionality. Simply put, the program is far too complicated for all of its
features to be feasibly expressed with command line options in a usable manner.
The only way to access the all the functionality is from the console UI, or with
configuration files. Automation can be done through configuration files.
--------------------------------------------------------------------------------
Startup Parameters:
These parameters are all optional and must be passed before the [option] parameter.
Tuning Profile:
profile:"Saki"
profile:"Komari"
profile:"R9 7950X (NT)"
Set the tuning profile to be used. The profile names differ by binary.
Refer to "Tuning.txt" or the profile option within the program for the list
of available profiles. Use the exact string as the profile text.
By default, y-cruncher will try to detect if it's run manually, or from the
command line. If run manually, it will pause at the end of the computation to
prevent the window from automatically closing. Otherwise, it will not pause.
Skip Warnings:
skip-warnings
Skip all the startup warnings so you don't need to press ENTER to continue.
Priority:
priority:{value}
Run y-cruncher with the specified priority. The priority values differ
between operating systems.
Windows:
3 Realtime (Windows automatically downgrades it to "High".)
2 High
1 Above Normal
0 Normal
-1 Below Normal (Default)
-2 Low
Linux:
0 Maximum Priority
-1 Minimum Priority (Default)
Colors:
Output Log:
logfile:"output.txt"
Currently, the only PII that y-cruncher can read is the motherboard's
serial number.
height:{height in lines}
(Examples: "height:60", "height:100")
Sets the height of the console window the specified number of lines.
This option is used by the HWBOT Submitter to size the window to exactly the
expected height of the full output of a computation.
Console: (advanced)
This option controls the backend to use for console output. This affects
how colors and cursor movement are handled.
The Virtual Terminal options will use ANSI color codes for setting colors.
The Windows API option will use "SetConsoleTextAttribute()" for colors.
"linux-vterm" can be selected on Windows. It mostly works, but will scramble
up any Unicode text.
Users should not need to set this option manually as y-cruncher will
usually pick the correct default.
status:none Do not print the status line until it won't change anymore.
status:overwrite Overwrite the status line when it updates. (default)
y-cruncher shows status lines that are updated in real-time. However, these
updating status lines will screw up the output file if stdout is piped.
This option allows you suppress the updating status lines so that the piped
output is nice and clean.
Users should not need to set this option manually as y-cruncher will
usually pick the correct default.
--------------------------------------------------------------------------------
Features:
Many features share the same sub-parameters. Refer to the last section in this
readme for descriptions on sub-parameters.
--------------------------------------------------------------------------------
Run a Configuration File:
There is currently no documentation for the object configs. But y-cruncher can
generate them automatically and they can be manually edited.
--------------------------------------------------------------------------------
Benchmark Pi:
--------------------------------------------------------------------------------
Benchmark Pi BBP:
The valid values for {size} are: 100m, 1b, 10b, 100b, 1t, 10t, 100t, 1q
The "1q" option is only available for binaries with FMA3 or higher.
--------------------------------------------------------------------------------
Component Stress Tester:
y-cruncher stress
y-cruncher stress -M:3.5G -D:300 -TL:3600 FFT VT3
Runs a stress test using the specified parameters. Unspecified parameters are
left at their defaults. By default, all algorithms are enabled. Specifying any
algorithm disables the rest. Multiple algorithms can be specified.
The valid values for [algorithm] are: BKT, BBP, SFTv4, SNT, SVT, FFTv4, NTT63, N63,
VSTv3, and VT3.
The options N32, N64, HNT, VST and C17 are no longer supported.
(N64 aliases to NTT63 and VST aliases to VSTv3)
--------------------------------------------------------------------------------
I/O Benchmark:
Runs the I/O benchmark using the specified parameters. Unspecified parameters are
left at their defaults. When "-swap" is not specified, it will use a single path
at the current working directory.
--------------------------------------------------------------------------------
BBP Digit Extractor for Pi:
--------------------------------------------------------------------------------
Custom Compute:
The optional parameters are handled in the order they are specified as if they
were manually entered into the Custom Compute menu UI.
Parameter: {constant:[param]}
Examples: pi, log:3, sqrt:3, custom:"filename"
--------------------
Parameter: [-algorithm:{#}]
Examples: -algorithm:0, -algorithm:1
"#" specifies the algorithm number to use. The number corresponds to the
same numbers shown from within the UI. 0 is the default algorithm. The
number of algorithms varies with each constant.
--------------------
Sets the number of digits to compute. "-dec" and "-hex" inherently override
each other. The only time it is meaningful to use both is "-dec:X -hex:0"
which will compute X decimal digits and disables the hexadecimal digits.
--------------------
Compress the digits using the specified number of digits per file.
If the # is zero, compression is disabled and the output will be text files.
If the # is -1, the output will be compressed into a single file.
--------------------
--------------------
Parameter: [-mode:{mode}]
Examples: -mode:ram, -mode:swap
--------------------
The options, "-M", "-minIO", and "-swap" are only valid in swap mode.
--------------------------------------------------------------------------------
Common Sub-Parameters:
Output Path:
-o {output path}
(Examples: -o c:/digits, -o "c:/path with space")
Output to the specified path. This applies to both the digits and the
validation/stats file.
Digit Output:
-od:{output digits}
Use this to suppress digits if you're only benchmarking and you don't want
the digit output.
Suppress SMT:
-noSMT
Disables the use of SMT. This sets the computation to use no more than one
thread per physical core.
This option will override both the Task Decomposition (-TD) and Parallel
Framework (-PF) options. So it should be specified before either of those.
Task Decomposition:
-TD:{tasks}
(Examples: "-TD:8", "-TD:12")
Note that setting this value to 1 does not disable multi-threading since
some subroutines ignore the parameter and will decompose anyway. To get a
correct single-threaded benchmark, you need to also set the parallel
framework to "none".
Parallel Framework:
-PF:{framework}
(Examples: "-PF:none", "-PF:cppasync")
Use the specified parallel computing framework. The valid values are:
-PF:none Disable multi-threading and sequentialize all tasks.
-PF:spawn Spawn a thread for every task.
-PF:cppasync Use C++11 Async.
-PF:taskqueue Use y-cruncher's custom task queue.
-PF:pushpool Use y-cruncher's custom decentralized thread pool.
-PF:winpool Use the Windows Thread Pool. (only available on
Windows)
-PF:cilk Use Cilk Plus work-stealing. (not available
everywhere)
-PF:tbb Use Thread Building Blocks (TBB). (not available
everywhere)
Note that the (-noSMT) option requires that the parallel framework support
core affinity. Only "taskqueue" and "pushpool" support core affinity. Thus
(-noSMT) will only function correctly if the framework is set to one of
those, or omitted - in which it will default to Push Pool.
Memory:
-M:{memory bytes}
(Examples: "-M:100000000", "-M:4.7g")
Memory Allocator:
-MA:{allocator}
(Examples: "-MA:mmap", "-MA:interleave")
Use the specified parallel computing framework. The valid values are:
-MA:malloc Use the C malloc() allocator.
-MA:mmap Use memory mapping. ("VirtualAlloc()" on Windows,
"mmap()" on Linux)
-MA:interleave Interleave NUMA nodes.
-MA:interleave-libnuma Interleave NUMA nodes using the libnuma library.
(only available with the dynamically-linked Linux
binaries)
Run the operation using the specified amount Min I/O parameter.
Decimals and suffixes are accepted: 512k, 1.5m
Suffixes are not case sensitive.
Note: The behavior of this option has changed from v0.7.2 to v0.7.3.
In v0.7.2 and earlier, this option set the "physical Min I/O" which is then
automatically adjusted based on the swap mode configuration to compute the
"logical Min I/O".
In v0.7.3, the concept of "physical Min I/O" has been removed. This option
will now set the "logical Min I/O" instead. It will not be automatically
adjusted as it was before.
-swap:default
-swap:ram
-swap:raid0 [path0] [path1] [path2] [etc...]
-swap:default
-swap:ram
-swap:raid0 c:/ d:/ e:/ f:/ "path with space"
If this option is used, it must be the last option. All arguments after it
will be parsed as paths.