Optimum settings for files location and Java virtual machine settings are computed by running hardware benchmark (disks) , detecting hardware types (RAM, OS), and using these values to retrieve optimum values from a database.
S2 RQT 87
Optimizing processing settings
For processing related settings (tile size, cache size, nb threads, etc.), optimum values are computed by running benchmarks for a combination of settings on a predefined graph. The user is able to define the values to be tested and the graph.
S2 RQT 88
The optimizer presents the values of the set parameters to the user and offers the possibility to set the parameters manually.
S2 RQT 89
The optimiser can be launched during the installation.
It is also be possible to re-run the optimizer after installation to update/reset the parameter values.
S2 RQT 90
Find automatically the best parameters for SNAP, considering hardware and a processing chain.
Background and strategic fit
Currently, the GPF works by processing single tiles instead of entire images allowing processing of data larger than the available RAM by using tiled processing within their own threads. However, its tile cache memory and the Java VM’s heap space can be exhausted if it is not properly configured for large data volumes specifically for the user's computer system. Tile sizes and tile cache sizes are static values defined in a configuration file. Maximum heap space is a VM setting. Most users are unaware how to properly set and adjust these settings, this will be done by the Smart Configurator.
The predefined graph needs to compute fast enough to run a "reasonable" combination of parameters in an "acceptable" time.
Use Case 1, installation
The administrator starts the installer up to the smart configurator page
[The administrator chooses to launch the smart configurator]
The smart configurator computes default optimum parameters
The smart configurator displays HMI showing these parameters
The administrator checks and changes some values and clicks “Ok”
[The administrator chooses NOT to launch the smart configurator]
The smart configurator computes default optimum parameters in the background
The installer proposes to launch the Toolbox
Use Case 2, from SNAP
The radiometry expert starts the Toolbox, then the Smart Configurator
The Smart Configurator displays the parameters values
The radiometry expert chooses the “land” processing graph
The radiometry expert adds and remove values for possible cache size, tile size or number of threads
The radiometry expert starts the bechmark
The Smart Configurator computes all combinations for the "land" processing graph and displays the fastest parameters
The radiometry expert changes some settings
The radiometry expert clicks
[Ok] The new settings are applied, the Smart Configurator exits
[Reset] Actual settings are restored
[Cancel] Actual settings are restored, the Smart Configurator exits
User interaction and design
The smart configurator has two zones
The System zone for hardware dependant settings (Global settings)
The Processing zone for processing dependant settings
Three main actions are possible:
Ok: set up the settings and quit
Apply: set up the settings and keep the SmartConfigurator Opened
Cancel: quit without applying changed settings
Help: display help for the smart configurator
For System settings
Compute update values from the detected hardware. Modified fields are highlighted.
Reset revert all System fields to the saved values
For Processing settings
The processing graph tests is chosen between all available graph on the Proc. graph combo box
Compute is performing running the chosen processing graph with all combination of "benchmark" values, and sets up values witch gave the shortest time. Modified values are highlighted.
Reset revert all processing fields to the saved values
Local parameters will not be computed from a database. This option was considered and presented to the developer forum since running benchmarks for a combination of parameters will take a very long time, but it was rejected since such a database was considered to hard do build as we can't estimate optimum parameters for all hardware types.
Collecting user information to know on which hardware is ran the toolbox would be interesting, at least to compute optimum default parameters.