diff --git a/Command Lines.txt b/Command Lines.txt new file mode 100644 index 0000000..32d1f6b --- /dev/null +++ b/Command Lines.txt @@ -0,0 +1,447 @@ +y-cruncher Command-Line Manual + +-------------------------------------------------------------------------------- + +General Usage: + + y-cruncher [startup options] [option] [extra parameters] + + + +Examples: + + +Run a Pi benchmark 500 million digits and skip any startup warnings: + + y-cruncher skip-warnings bench 500m + + +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:/ + + +Run a configuration file: + + y-cruncher config config-name.ini + y-cruncher config "my saved settings" + + + +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. + + +Pause at End of Computation: + + pause:1 Always pause at the end of a computation. + pause:0 Default behavior - automatically decide whether to pause. + pause:-1 Never pause at the end of a computation. Will pause on errors. + pause:-2 Never pause at all, not even on errors. + + 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. + + +Set Console Height: (Windows Only) + + 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. + + This option is currently only supported in Windows. It is ignored in Linux. + + +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) + + On Linux, privilege elevation may be needed for this option to work. + + +Colors: + + colors:1 Enable console colors. (Default) + colors:0 Disable console colors. + + Colors should be enabled for competitive benchmarking since disabling them + may give an unfair performance advantage for small computations. + + +Personally Identifiable Information: + + PII:1 Enable PII + PII:-1 Disable PII + PII:0 Default behavior (disabled) + + If enabled, it allows y-cruncher to read hardware serial numbers and + include them in the validation files that it outputs. + + Currently, the only PII that y-cruncher can read is the motherboard's + serial number. + + + + +-------------------------------------------------------------------------------- + +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: + + {program} config {filename}[extension] + + y-cruncher config my-config.cfg + y-cruncher config "file name with space" + +Run whatever is in the specified configuration file. +If no extension is detected, it will automatically append ".cfg". + +Configuration files follow a JSON-like object format. The contents of the +config format vary depending on the action that is being run. + +There is currently no documentation for the object configs. But y-cruncher can +generate them automatically and they can be manually edited. + + +-------------------------------------------------------------------------------- +Benchmark Pi: + + {program} bench {size} [-o {output path}] + [-od:{output digits}] + [-TD:{tasks}] + [-PF:{framework}] + [-MA:{allocator}] + + y-cruncher bench 25m + y-cruncher bench 1b -TD:8 + y-cruncher bench 1b -TD:1 -PF:none + y-cruncher bench 1b -od:0 + +The valid values for {size} are: + 25m, 50m, 100m, 250m, 500m, + 1b, 2.5b, 5b, 10b, 25b, 50b, 100b, 250b, 500b, + 1t, 2.5t, + 1M, 2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M, 512M, + 1G, 2G, 4G, 8G, 16G, 32G, 64G, 128G + + + +-------------------------------------------------------------------------------- +Component Stress Tester: + + {program} stress [-M:{memory bytes}] + [-D:{per test duration}] [-TL:{test time limit}] + [algorithm] + + y-cruncher stress + y-cruncher stress -M:3.5G -D:300 -TL:3600 FFT VST + +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. + +-D and -TL are measured in seconds. + +The valid values for [algorithm] are: BKT, FFT, N32, N64, HNT, VST, and C17 +The "C17" algorithm is not available on all processors. + + + +-------------------------------------------------------------------------------- +I/O Benchmark: + + {program} benchio [-M:{memory bytes}] + [-TD:{tasks}] [-PF:{framework}] [-MA:{allocator}] + [-minIO:{Min I/O Size}] [-swap:{mode} [configuration]] + + y-cruncher benchio -M:16.5G + y-cruncher benchio -M:4g -TD:8 -minIO:512k + +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. + + + +-------------------------------------------------------------------------------- +Custom Compute: + + {program} custom {constant[:param]} + [-algorithm:{#}] + [-dec:{decimal digits}] + [-hex:{hexadecimal digits}] + [-o {output path}] + [-od:{output digits}] + [-C:{compress}] or [-compress:{compress}] + [-verify:{0 or 1}] + [-mode:{mode}] + [-TD:{tasks}] + [-PF:{framework}] + [-MA:{allocator}] + [-M:{memory bytes}] + [-minIO:{Min I/O Size}] + [-swap:{mode} [configuration]] + + y-cruncher custom catalan -dec:1000000 + y-cruncher custom log:2 -algorithm:1 -dec:100b -hex:0 -o "c:/" -compress:1b -verify:1 -mode:swap -TD:64 -M:120g -minIO:512k -swap:raid0 g:/ h:/ i:/ j:/ + +Performs a custom computation using the specified parameters. + +The optional parameters are handled in the order they are specified as if they +were manually entered into the Custom Compute menu UI. + +Automatic parameter correction and restrictions are done identically as in the +UI. Therefore it is recommended to specify the parameters in the order they are +listed above since that is the direction of the auto-correction dependencies. + + + Parameter: {constant:[param]} + Examples: pi, log:2, sqrt:3, custom:"filename" + + Valid Values: sqrt, phi, goldenratio, e, pi, log, apery, zeta(3), + lemniscate, catalan, gamma, brent, custom + +-------------------- + + 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. + +-------------------- + + Parameter: [-dec:{decimal digits}] [-hex:{hexadecimal digits}] + Examples: -dec:1000000 -hex:0, -dec:100m + + 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. + + Suffixes are accepted: 500k, 100m, 10b, 2t + Suffixes are not case sensitive. + +-------------------- + + Parameter: [-C:{compress}] or [-compress:{compress}] + Examples: -compress:0, -compress:-1, -compress:1000000000 -compress:100m + + 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. + + Suffixes are accepted: 500k, 100m, 10b, 2t + Suffixes are not case sensitive. + +-------------------- + + Parameter: [-verify:0] or [-verify:1] + Examples: -verify:0, -verify:1 + + "-verify:1" enables verification of the base conversion and output digits. + "-verify:0" disables these verifications. + + Enabling verification is mandatory when claiming a new world record size + computation. + +-------------------- + + Parameter: [-mode:{mode}] + Examples: -mode:ram, -mode:swap + + Pretty self-explanatory. Those are the only two valid options. + +-------------------- + + The options, "-M", "-minIO", and "-swap" are only valid in swap mode. + + + + +-------------------------------------------------------------------------------- + +Common Sub-Parameters: + +These parameters are used by multiple components in y-cruncher. + + +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} + + -od:0 disables output of digits + -od:1 enables output of digits (default) + + Use this to suppress digits if you're only benchmarking and you don't want + the digit output. + + +Task Decomposition: + + -TD:{tasks} + (Examples: "-TD:8", "-TD:12") + + Run the operation using the desired level of task decomposition. + A larger number enables more parallelism, but at the cost of more + computational and memory overhead. For most systems, setting this equal to + the number of logical cores is ideal. But forcing it higher may reduce + load-imbalance. + + 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". + + Disable Multi-threading: -TD:1 -PF: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 there is no way to set framework-specific settings via the + command line. So they will be left at their default values. You can only + set them from within y-cruncher's console UI or with config files. + + +Memory: + + -M:{memory bytes} + (Examples: "-M:100000000", "-M:4.7g") + + Run the operation using the specified amount of memory. + Decimals and suffixes are accepted: 4.7g, 9.1t + Suffixes are not case sensitive. + + +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) + + Note that there is currently no way to set allocator-specific settings via + the command line. So they will be left at their default values. You can + only set them from within y-cruncher's console UI or with config files. + + +Min I/O Bytes (Bytes per Seek): + + -minIO:{Min I/O Size} + (Examples: "-minIO:1048576", "-minIO:4m") + + 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 Mode Configuration: + + -swap:default + -swap:raid0 [path0] [path1] [path2] [etc...] + -swap:raid3 [path0] [path1] [path2] [etc...] + + -swap:default + -swap:raid0 c:/ d:/ e:/ f:/ + -swap:raid3 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. + + Note that the "Swap Configuration" feature no longer exists in y-cruncher. + It has been replaced with a selectable set of "Far-Memory" frameworks. + Therefore, this feature is out-of-date. But for the sake of backwards + compatibility, it will remain for now and will map to some reasonable + far-memory configuration that most closely imitates the original behavior. + + As with the parallel frameworks and memory allocators, there is no way to + set sub-options from the command line. This feature is far too complicated + for command line use. Therefore, you can only set them from within + y-cruncher's console UI or with config files. + + + + + + + diff --git a/Read Me.txt b/Read Me.txt new file mode 100644 index 0000000..9eb7e53 --- /dev/null +++ b/Read Me.txt @@ -0,0 +1,52 @@ +y-cruncher - Euler's Constant to the eXtReMe + +Version: 0.7.8 Build 9507 +Copyright 2008-2020 by Alexander J. Yee +E-mail: a-yee@u.northwestern.edu +Website: www.numberworld.org + + +y-cruncher, (y for gamma) is a number crunching program that can compute +various mathematical constants. + +It was originally a small program specialized for computing the +Euler-Mascheroni Constant. (which uses gamma as its symbol, hence the name) +It has since gained the ability to compute other constants. + + +-------------------------------------------------------------------------------- + +License: + +You may mirror and distribute this software free of charge for any purpose. +You may use this software free of charge for any non-commercial purpose. +You may also use this software for any academic purpose (including technology +reviews), even if they are commercial. + +If wish to publicize a world record set using y-cruncher, you must indicate that +it was done using this software. + +If you wish to use y-cruncher for commercial purposes, please contact the +developer at: a-yee@u.northwestern.edu + +The terms of this license may change at any time with or without prior +notification. The latest version of the license can be found at: + + www.numberworld.org/y-cruncher/license.html + + +-------------------------------------------------------------------------------- + +Disclaimer: + +This software is provided "as is" and the author disclaims all warranties with +regard to this software including all implied warranties of merchantability and +fitness. In no event shall the author be liable for any special, direct, +indirect, or consequential damages, or any damages whatsoever resulting from +loss of use, data or profits, whether in an action of contract, negligence or +other tortious action, arising out of or in connection with the use or +performance of this software. + + +September 13, 2020 +Alexander J. Yee diff --git a/Username.txt b/Username.txt new file mode 100644 index 0000000..08600bc --- /dev/null +++ b/Username.txt @@ -0,0 +1,16 @@ +# +# This file is used to specify a name, username, email, etc... that you would +# like to appear in the validation certificates that y-cruncher will create. +# This is used for identification purposes. +# +# Examples: +# Johnny Sun (Serotoninn) +# Haruhi Suzumiya (涼宮ハルヒ) +# +# +# Note the following rules: +# 1. Only printable characters are allowed. (i.e. No control characters) +# 2. This file needs to be saved as either UTF-8 or UTF-16 with byte order mark. +# + +Username: None Specified - You can edit this in "Username.txt". diff --git a/y-cruncher b/y-cruncher new file mode 100644 index 0000000..25114f8 Binary files /dev/null and b/y-cruncher differ