forked from cdslaborg/paramonte
-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.sh.usage.txt
85 lines (74 loc) · 6.58 KB
/
install.sh.usage.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
usage:
./install.sh \
-L <build library for: C C++ Fortran MATLAB Python> \
-s <compiler suite: intel gnu> \
-b <build mode: release testing debug> \
-l <library type: static shared (or equivalently, dynamic)> \
-p <parallelism type: none mpi cafsingle cafshared cafdistributed> \
-m <memory allocation type: stack heap> \
-t <ParaMonte test type: none basic sampler all> \
-x <ParaMonte example run enabled: true false> \
-c <generate code coverage report> \
-f <path to Fortran compiler> \
-M <path to mpiexec> \
-F <purge the existing prerequisite library installations and perform a fresh installation> \
-y <assume yes as answer to all installation permission inquiries> \
-B <perform GCC bootstrap installation> \
-n <default number of processors for parallel application> \
-j <default number of processors for parallel library build> \
-h <help on the script usage>
example:
./install.sh -L "Python C" -b "release debug" -l shared -p "none mpi" -m heap -n 3 -j 4
or equivalently,
./install.sh --lang "Python C" --build "release debug" --lib shared --par "none mpi" --mem heap --nproc 3 --njob 4
The above two commands will build the library for the C and Python programming languages.
flag definitions:
-L | --lang : the ParaMonte library interface language(case-insensitive): C C++ Fortran MATLAB Python.
the ParaMonte library will be built for usage from the user-specified languages.
the default is "C C++ Fortran MATLAB Python".
Note that CPP or cpp is also acceptable in place of C++.
-s | --compiler_suite : the ParaMonte library build compiler suite: intel, gnu
If you are not sure whether you have any of the two installed on your system,
leave this option out. The script will automatically search for the appropriate
compilers and libraries. If they are not found, it will ask for your permission
to install the missing components.
-b | --build : the ParaMonte library build type: release, testing, debug
the default is "release testing debug".
-l | --lib : the ParaMonte library type: static, shared (or equivalently, dynamic)
the default is "shared" for all programming languages C/C++/Fortran/MATLAB/Python.
-m | --mem : the ParaMonte library memory allocation type for arrays: stack, heap
the default is "stack heap" resulting in builds for both stack and heap memory allocations.
-p | --par : the ParaMonte library parallelism type: none mpi cafsingle cafshared cafdistributed
the default is all parallelism options resulting in serial, MPI, and Coarray-parallel library builds.
-t | --test : the ParaMonte library test type: none, basic, sampler, all.
If basic, only the auxiliary non-sampler routines will be tested.
If sampler, the ParaMonte sampler routines will be tested.
If all, then all tests will be performed.
The default is none.
-x | --exam_enabled : the ParaMonte library examples run enabled?: true, false
the default is true.
-f | --fortran : path to Fortran compiler. If provided, the ParaMonte library will be built via the specified compiler.
the default will be automatically determined.
-M | --mpiexec : path to mpiexec routine. If provided, it will be used to find the MPI library.
the default will be automatically determined.
-F | --fresh : enables a fresh installation of all of the prerequisites of ParaMonte library. Applicable only to GNU compiler suite.
-o | --local : prefer a build with the local installation of the prerequisites by ParaMonte (if they exist) over the default system settings.
-D | --deploy : Copy also the library dependencies to the install directory of the library.
This is a low level option and mostly useful for the developers of the ParaMonte library.
Note for the developers: When building the ParaMonte library for dynamic programming languages for multiple build types
with the --deploy flag, we recommend specifying the build types in this order: "debug testing release".
-y | --yes-to-all : if a fresh installation of all of the prerequisites is needed, automatically answer yes to all permission requests.
-B | --bootstrap : enables robust bootstrap build when building the required GCC version with an old GCC version. Applicable only to GNU compiler suite.
-c | --codecov : perform code coverage analysis. This option will disable the ParaMonte examples builds and runs and the ParaMonte library installation.
-d | --dryrun : skip a fresh library build and use the existing build to run the tests and examples and install the library (if any is possible).
-a | --matdram : build (only) the ParaMonte MatDRAM MATLAB library and return.
-n | --nproc : the default number of processes (coarray images) on which the ParaMonte examples/tests (if any) will be run: positive integer
If not provided, 3 will be used.
-j | --njob : the default number of processes to be used for building the ParaMonte library. The default is 1.
-h | --help : help with the script usage
NOTE: All flags are optional.
NOTE: If you specify multiple options for any flag, you must enclose all options together with quotation marks "".
NOTE: Some flags conflict with each other:
NOTE: The flag -m cafsingle or -m cafshared or -m cafdistributed cannot be specified with -L C or -L MATLAB or -L Python.
NOTE: The flag -m cafsingle or -m cafshared or -m cafdistributed cannot be specified with -l shared (dynamically-linked library).
NOTE: The flag -m stack (stack memory allocation) cannot be specified with -L MATLAB or -L Python.