Parallel computing support is the big feature from this release. If you have a multi-core processor, DataModeler automatically runs parallel IndependentEvolutions up to the limit imposed by either the number of cores available, or the license restriction on the number of subkernels (typically, four) which can be associated with a given master kernel. Of course, if you have a quad-core i7 processor, you can launch two master kernels and really make the fan on your machine spin.
As detailed in the release notes below, the big change is the support for MultiCore (which is the option name to turn the feature on or off); however, we did implement a few minor tweaks in the process.
- Implemented support for parallel execution of IndependentEvolutions during SymbolicRegression. This coarse-grain MultiCore parallelization exploits the capabilities of multi-core processors up to the $KernelCount limit imposed by the hardware or the Mathematica license.
- Implemented a KernelID function which can be used inside the SymbolicRegression monitoring functions (e.g., GenerationMonitor) to identify which of the subkernels generated a result. Symbols updated within the monitoring functions will be shared by the various subkernels so there was a need for a tagging mechanism so that evolution trajectories could be deconvolved.
- Extended UpdateModelPersonality to support clearing model attributes so that default behaviors will come through. Thus, if we had a model set which had previously had a PlotLabel defined, supplying PlotLabel -> Clear would take that aspect out of the ModelPersonality.
- Modified EvaluationNotebookDirectory to restore the desired behavior of always returning a valid filepath even if the evaluating notebook had not previously been saved. Otherwise, it works the same as the built-in NotebookDirectory function.