Smart Configurator Specification

Target release2.0
Epic SIITBX-3 - Getting issue details... STATUS SIITBX-30 - Getting issue details... STATUS SIITBX-31 - Getting issue details... STATUS SIITBX-32 - Getting issue details... STATUS
Document statusDRAFT
Document owner

Nicolas Ducoin (Unlicensed)

DesignerNicolas Ducoin (Unlicensed)



#TitleUser StoryImportanceNotes
1Optimizing global settingsOptimum 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.Must HaveS2 RQT 87
2Optimizing processing settingsFor 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.Must Have

S2 RQT 88

3Manual configuration

The optimizer presents the values of the set parameters to the user and offers the possibility to set the parameters manually.

Must HaveS2 RQT 89
4Launch modeThe 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.

Must HaveS2 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 Cases

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

Not Doing

  • 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.