Use the OpenMp parallel decoding jt9 in WSJT-X

The temporary  development version  of jt9 called  jt9_omp is  now the
default jt9. This means that parallel  decoding of JT65 and JT9 is the
default on platforms that support  OpenMP.

If parallel decoding is not required or desired, it can be constrained
by setting the environment  variable OMP_THREAD_LIMIT=1.  In dual mode
operating this will deliver all decodes of the current mode before any
decodes of the  other with the potential impact of  taking up to twice
as long to finish decoding.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4960 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville
2015-02-13 16:55:47 +00:00
parent 464a9547e4
commit adc2bec490
2 changed files with 29 additions and 21 deletions
+13 -3
View File
@@ -374,9 +374,19 @@ MainWindow::MainWindow(bool multiple, QSettings * settings, QSharedMemory *shdme
QFile {m_config.temp_dir ().absoluteFilePath (".lock")}.open(QIODevice::ReadWrite);
QStringList jt9_args {
"-s", QApplication::applicationName ()
, "-w", "1" //FFTW patience
, "-m", "1" //FFTW threads
"-s", QApplication::applicationName () // shared memory key,
// includes rig-name
, "-w", "2" //FFTW patience
// The number of threads for FFTW specified here is chosen as
// three because that gives the best throughput of the large
// FFTs used in jt9. The count is the minimum of (the number
// available CPU threads less one) and three. This ensures that
// there is always at least one free CPU thread to run the other
// mode decoder in parallel.
, "-m", QString::number (qMin (qMax (QThread::idealThreadCount () - 1, 1), 3)) //FFTW threads
, "-e", QDir::toNativeSeparators (m_appDir)
, "-a", QDir::toNativeSeparators (m_dataDir.absolutePath ())
, "-t", QDir::toNativeSeparators (m_config.temp_dir ().absolutePath ())