Skip to content

Benchmark features

canrong qiu edited this page May 22, 2021 · 1 revision

Not just having a new GUI-shell, SuPerRod comes with some new benchmark features that GenX does not have. First, SuPerRod employs two separated threads to manipulate the displaying of GUI widgets and the fitting processes. As a result, the main GUI does not freeze during fitting process. In addition, the burden of the fitting process (most computation expensive) is distributed to different processers in a multiple-core architecture CPU system, which is usually equipped in modern PC’s. Recently, I used numba JIT to compile the computation intensive code block into machine scripts that achieves another 20% increase in the performance. In addition, you can modify your script easily by pushing some buttons rather than making edits directly in the script editor panel. The idea is you predefine different sorbates, which are wrapped and collected inside the sorbate module. Then by tagging through the standard script with unique name-tag, which you use to locate the corresponding code block, you can locate and replace the code block in a way defined by the given sorbate tag. Speaking of model script, the figure of merit function is structured to return a tuple, that contains a simulated result and a penalty factor. You are free to define the penalty factor as a constraint for the fitting process. Constraining your fit is a very robust way to avoid overfitting. Having said that, let me say something about fit parameters. Clinging to the concept of user-friendly concept, I implemented in SuPerRod auto-filling fit parameters in the parameter panel. Now setting up a model in SuPerRos is really a few easy steps away: loading data, modifying script, and defining parameters, which are (semi)-automatic process. Last but not least, a Python terminal widget is imbedded to allow for exploration of modules, attributes, variables and many others on your model. It is a nice/easy way for either debugging or testing new feature on SuPerRod. All these features will be detailed in later sections.

Clone this wiki locally