Fem: Set default CalculiX number of threads to Qt idealThreadCount

This commit is contained in:
marioalexis
2024-12-19 14:38:12 -03:00
parent a1b1c82310
commit 590733ea2c
3 changed files with 9 additions and 10 deletions

View File

@@ -301,10 +301,10 @@
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="toolTip">
<string>Set to zero to automatically use maximum number of available cores</string>
<string>Number of threads used for analysis</string>
</property>
<property name="minimum">
<number>0</number>
<number>1</number>
</property>
<property name="prefEntry" stdset="0">
<cstring>AnalysisNumCPUs</cstring>

View File

@@ -45,9 +45,6 @@ DlgSettingsFemCcxImp::DlgSettingsFemCcxImp(QWidget* parent)
// set ranges
ui->dsb_ccx_analysis_time->setMaximum(FLOAT_MAX);
ui->dsb_ccx_initial_time_step->setMaximum(FLOAT_MAX);
// determine number of CPU cores
int processor_count = QThread::idealThreadCount();
ui->sb_ccx_numcpu->setMaximum(processor_count);
connect(ui->fc_ccx_binary_path,
&Gui::PrefFileChooser::fileNameChanged,
@@ -117,6 +114,11 @@ void DlgSettingsFemCcxImp::loadSettings()
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath(
"User parameter:BaseApp/Preferences/Mod/Fem/Ccx");
// determine number of CPU threads
int processor_count = hGrp->GetInt("AnalysisNumCPUs", QThread::idealThreadCount());
ui->sb_ccx_numcpu->setValue(processor_count);
int index = hGrp->GetInt("Solver", 0);
if (index > -1) {
ui->cmb_solver->setCurrentIndex(index);

View File

@@ -381,11 +381,8 @@ class _TaskPanel:
# Set up for multi-threading. Note: same functionality as ccx_tools.py/start_ccx()
ccx_prefs = FreeCAD.ParamGet(self.PREFS_PATH)
env = QtCore.QProcessEnvironment.systemEnvironment()
num_cpu_pref = ccx_prefs.GetInt("AnalysisNumCPUs", 0)
if num_cpu_pref >= 1:
env.insert("OMP_NUM_THREADS", str(num_cpu_pref))
else:
env.insert("OMP_NUM_THREADS", str(QtCore.QThread.idealThreadCount()))
num_cpu_pref = ccx_prefs.GetInt("AnalysisNumCPUs", QtCore.QThread.idealThreadCount())
env.insert("OMP_NUM_THREADS", str(num_cpu_pref))
self.Calculix.setProcessEnvironment(env)
self.cwd = QtCore.QDir.currentPath()