Warning, /jana2/docs/howto/configuration.md is written in an unsupported language. File is not indexed.
0001
0002 Configuring JANA
0003 ================
0004
0005 JANA provides a parameter manager so that configuration options may be controlled via code, command-line args, and
0006 config files in a consistent and self-documenting way. Plugins are free to request any existing parameters or register
0007 their own.
0008
0009 The following configuration options are used most commonly:
0010
0011 | Name | Type | Description |
0012 |:-----|:-----|:------------|
0013 | nthreads | int | Size of thread team (Defaults to the number of cores on your machine) |
0014 | plugins | string | Comma-separated list of plugin filenames. JANA will look for these on the `$JANA_PLUGIN_PATH` |
0015 | plugins_to_ignore | string | This removes plugins which had been specified in `plugins`. |
0016 | event_source_type | string | Manually specify which JEventSource to use |
0017 | jana:nevents | int | Limit the number of events each source may emit |
0018 | jana:nskip | int | Skip processing the first n events from each event source |
0019 | jana:status_fname | string | Named pipe for retrieving status information remotely |
0020 | jana:loglevel | string | Set the log level (trace,debug,info,warn,error,fatal,off) for loggers internal to JANA |
0021 | jana:global_loglevel | string | Set the default log level (trace,debug,info,warn,error,fatal,off) for all loggers |
0022 | jana:show_ticker | bool | Controls whether the status ticker is shown |
0023 | jana:ticker_interval | int | Controls how often the status ticker updates (in ms) |
0024 | jana:extended_report | bool | Controls whether to show extra details in the status ticker and final report |
0025
0026 JANA automatically provides each component with its own logger. You can control the logging verbosity of individual components
0027 just like any other parameter. For instance, if your component prefixes its parameters with `BCAL:tracking`,
0028 you can set its log level to `DEBUG` by setting `BCAL:tracking:loglevel=debug`. You can set the parameter prefix by calling `SetPrefix()`,
0029 and if you need the logger name to differ from the parameter prefix for any reason, you can override it by calling `SetLoggerName()`.
0030
0031
0032 The `JTest` plugin lets you test JANA's performance for different workloads. It simulates a typical reconstruction pipeline with four stages: parsing, disentangling, tracking, and plotting. Parsing and plotting are sequential, whereas disentangling and tracking are parallel. Each stage reads all of the data written during the previous stage. The time spent and bytes written (and random variation thereof) are set using the following parameters:
0033
0034 | Name | Type | Default | Description |
0035 |:-----|:-----|:------------|:--------|
0036 | jtest:parser:cputime_ms | int | 0 | Time spent during parsing |
0037 | jtest:parser:cputime_spread | int | 0.25 | Spread of time spent during parsing |
0038 | jtest:parser:bytes | int | 2000000 | Bytes written during parsing |
0039 | jtest:parser:bytes_spread | double | 0.25 | Spread of bytes written during parsing |
0040 | jtest:disentangler:cputime_ms | int | 20 | Time spent during disentangling |
0041 | jtest:disentangler:cputime_spread | double | 0.25 | Spread of time spent during disentangling |
0042 | jtest:disentangler:bytes | int | 500000 | Bytes written during disentangling |
0043 | jtest:disentangler:bytes_spread | double | 0.25 | Spread of bytes written during disentangling |
0044 | jtest:tracker:cputime_ms | int | 200 | Time spent during tracking |
0045 | jtest:tracker:cputime_spread | double | 0.25 | Spread of time spent during tracking |
0046 | jtest:tracker:bytes | int | 1000 | Bytes written during tracking |
0047 | jtest:tracker:bytes_spread | double | 0.25 | Spread of bytes written during tracking |
0048 | jtest:plotter:cputime_ms | int | 0 | Time spent during plotting |
0049 | jtest:plotter:cputime_spread | double | 0.25 | Spread of time spent during plotting |
0050 | jtest:plotter:bytes | int | 1000 | Bytes written during plotting |
0051 | jtest:plotter:bytes_spread | double | 0.25 | Spread of bytes written during plotting |
0052
0053
0054
0055 The following parameters are used for benchmarking:
0056
0057 | Name | Type | Default | Description |
0058 |:-----|:-----|:------------|:--------|
0059 | benchmark:nsamples | int | 15 | Number of measurements made for each thread count |
0060 | benchmark:minthreads | int | 1 | Minimum thread count |
0061 | benchmark:maxthreads | int | ncores | Maximum thread count |
0062 | benchmark:threadstep | int | 1 | Thread count increment |
0063 | benchmark:resultsdir | string | JANA_Test_Results | Directory name for benchmark test results |
0064
0065
0066 The following parameters are more advanced, but may come in handy when doing performance tuning:
0067
0068 | Name | Type | Default | Description |
0069 |:-----|:-----|:------------|:--------|
0070 | jana:max_inflight_events | int | nthreads | The number of events which may be in-flight at once. Should be at least `nthreads`, more gives better load balancing. |
0071 | jana:affinity | int | 0 | Thread pinning strategy. 0: None. 1: Minimize number of memory localities. 2: Minimize number of hyperthreads. |
0072 | jana:locality | int | 0 | Memory locality strategy. 0: Global. 1: Socket-local. 2: Numa-domain-local. 3. Core-local. 4. Cpu-local |
0073 | jana:enable_stealing | bool | 0 | Allow threads to pick up work from a different memory location if their local mailbox is empty. |