Commit Graph

1810 Commits

Author SHA1 Message Date
Bill Somerville
8845f63792 Remove redundant copy of large array in JT9 decoder
Also moved  the same large array  from stack to heap  which along with
other prior  changes now allows  the Windows jt9 OpenMP  executable to
run with a default stack size again.

This also removes a crash on the Mac version which was probably due to
excessive stack usage.

Net result is an even faster JT9 decoder.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4942 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-08 09:53:20 +00:00
Joe Taylor
ec7bf0652a Another instance of variables needing to be saved explicitly between
calls to a subroutine.  I believe this fixes the known outstanding decode
issue.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4941 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-06 18:44:45 +00:00
Bill Somerville
133b603c39 Make output arguments of decoders shared between threads
This is only a temporary fix  becuase if both decoders were to produce
results  that need  accumulating  e.g. number  of  decodes, then  more
complex code to merge the results would be needed.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4940 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-06 16:34:26 +00:00
Joe Taylor
94911071be Some variables now need to be saved explicitly to maintain value
betweek subsoutine calls.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4939 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-06 15:18:38 +00:00
Bill Somerville
237a0a8dec Fix compiler detection on Mac OS X
Set the CMake variables CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET
must be set before the project() command since they can effect compiler
detection and capability tests.

Only use the -stdlib=libc++ option on Mac OS X when using Clang tools.
On other platforms with Clang tools libc+ is not currently the best choice.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4938 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-06 14:37:10 +00:00
Bill Somerville
ad94752967 Thread safe lib/timer.f90
Accounts for each traced call per thread and accumulates by rolling up
calls with an identical call chain before printing the statistics. The
print now accounts for function calls  in their call chain so the same
function will be reported more than  once if it is called in different
places.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4937 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-05 22:07:19 +00:00
Joe Taylor
8073acae1f Increase JT65 decoding depth at QSO frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4936 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-05 17:43:43 +00:00
Joe Taylor
a6a31362ab Better to set nflatten=0 here, for command-line speed tests.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4935 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 21:42:49 +00:00
Joe Taylor
e35f8cc555 Make array sizes in downsam9 consistent with the new big FFT length.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4934 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 21:26:58 +00:00
Bill Somerville
43397b9580 Only use >1 thread for the biggest FFTs
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4933 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 20:52:42 +00:00
Joe Taylor
3b5fcd30f5 Make the symspec() call in jt9.for consistent with that from mainwindow.cpp.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4932 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 19:52:37 +00:00
Bill Somerville
62a229f1c5 Fix typo that disabled JT65 decoding in dual mode.
Disable timer.out generation in OpenMP builds as it is broken.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4931 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 16:33:45 +00:00
Bill Somerville
9cf5dc4f5c Adjust the jt9 decoder to do the right decodes in parallel
Also limit the required threads for parallel decoding to 2.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4930 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 15:34:46 +00:00
Joe Taylor
84b9135b3d Need space for more calls to timer().
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4929 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 15:05:39 +00:00
Bill Somerville
8d8d64c07c Thread safety enhancements to jt9
Serialize thread unsafe FFTW3 calls

Serialize FFTW3 plan initializations in four2a

Serialize decoder results output to file/console

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4928 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 01:41:26 +00:00
Joe Taylor
8543283404 Add rfilt and df to the "save" list in filbig.f90.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4927 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-04 00:37:33 +00:00
Joe Taylor
79a6ed5464 Further algorithmic tweaks in the JT9 decoder.
More detailed message to come, with comparative timing statistics.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4926 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-02 18:29:00 +00:00
Bill Somerville
19c4d67b29 Only install jt9_omp if it has been built
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4925 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-02 14:57:43 +00:00
Bill Somerville
b16d510b0d First attempt at a thread safe lib/timer.f90
This  tries  to  account  for  function  calls  in  different  threads
separately by decorating  the function name with the  thread number it
is  running in.  This may  not be  the best  strategy for  performance
timing but it is  the easiest way of making it thread  safe that I can
see.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4924 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-02 14:08:17 +00:00
Bill Somerville
001758954d Only add stack size link commands on Windows
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4923 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-02 11:34:29 +00:00
Bill Somerville
2903788e4c Build an OpenMP version of jt9 where possible
This change  introduces the program jt9_omp  which is a testbed  for a
multi-threaded version of the jt9 decoder program. The program jt9_omp
should be  a directly substitutable for  jt9 except that JT65  and JT9
decodes are computed in parallel.

Also enable  the OpenMP directives in  decoder.f90 - note this  is not
yet a working multi-threaded decoder and the existing jt9 is still the
correct decoder to be used in WSJT-X.

Increased the available  stack size for jt9_omp.exe as this  is a hard
limit on  Windows and  the default  is not big  enough for  the OpenMP
version of jt9.

Also  Fortran  array  bounds  checking is  now  disabled  for  Release
configuration builds so as to improve performance a little.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4922 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-02 11:24:20 +00:00
Joe Taylor
7f70863caa Change some calls to timer().
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4921 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-01 20:11:10 +00:00
Joe Taylor
ccca5b80ea Forgot to commit decjt9.f90.
Also note: something's wrong when trying to decode a file read 
by the GUI from disk.  Will fix it soon...



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4920 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-01 17:40:14 +00:00
Joe Taylor
960da46d28 Many changes in program jt9[.exe] aimed at speeding up the decoders.
The long FFTs can now use the multi-threaded FFTW routines.
Subroutine decode9.f90 was renamed jt9fano.f90.
The JT9 decoder's top-level functions were removed from decoder.f90
and put into a separate subroutine decjt90.f90.
Subroutine decoder.f90 is now configured for possible use of OpenMP 
SECTIONS, with the JT9 and JT65 decoders running concurrently on
a multi-core machine.  Note, however, that this concurrent processing 
is not yet fully implemented.  Probably calls to timer need to be removed; 
some variables used in calls to jt65a and decjt9 may need to be 
declared PRIVATE in decoder; some sections probably need to be declared 
CRITICAL; probably some SAVE statements in downstream routines have
made them not thread-safe; etc., etc.  

I'm a neophyte at using OpenMP.  Comments, suggestions, and/or tests by
others will be welcome!



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4919 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-01 16:23:36 +00:00
Bill Somerville
30416c287f The CMake FFTW3 finder should not look for a threaded library on Windows
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4918 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-31 11:37:01 +00:00
Bill Somerville
e42340ee37 Tell the CMake FFTW3 finder that we want to use threads
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4917 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-31 11:28:29 +00:00
Joe Taylor
647f809c97 Made a start at implementing an option to use multi-threaded FFTs.
New command-line option for jt9: [-m nthreads].  Default is nthreads=1.
Also refactored a loop in filbig.f90 that was taking far too much
time.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4916 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-30 21:28:10 +00:00
Joe Taylor
2ca414ac9d Allow use on nonthreading model by setting nthreads=0.
Require at least 10 iterations.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4915 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-30 01:45:37 +00:00
Joe Taylor
2557fa39f2 More minor cleanup.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4914 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 20:50:05 +00:00
Joe Taylor
88eb165e4c Set compiler flags.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4913 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 19:17:56 +00:00
Joe Taylor
518dd76c6b Clean up compiler warnings.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4912 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 19:16:37 +00:00
Joe Taylor
508594428a Another tweak.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4911 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 18:49:40 +00:00
Joe Taylor
7965d607c2 Remove diagnostic print.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4910 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 18:46:46 +00:00
Joe Taylor
0f0d63a714 Minor tweaks.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4909 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 18:38:51 +00:00
Joe Taylor
ec3fd43b8e More testing of FFTW performance...
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4908 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-29 18:29:41 +00:00
Joe Taylor
bba2757545 Testing some newer FFTW features.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4907 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-28 12:52:24 +00:00
Bill Somerville
3f77d7151b Remove usage of otool and install_name_tool from Mac KVASD installer
These tools are no longer part of a standard OS X install and would need to be
installed via the Xcode commnd line tools. Instead the KVASD binary has been
preprocessed and the Mac KVASD installer simply injects the KVASD binary into
the target application bundle(s).

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4906 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-26 12:12:35 +00:00
Bill Somerville
c376ffe7dd The +2kHz check box should not adjust the frequency when starting up
Since the  last monitored dial  frequency is stored and  restored from
the settings the +2kHz setting should  only set the state of the check
box when initializing and not attempt to adjust the dial frequency.

Merged from the wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4903 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-22 00:45:11 +00:00
Bill Somerville
56dc1530b7 Accommodate new mode mnemonics from DX Labs with FlexRadio SDRs
DX Lab  Suite Commander now returns  "DIGU" and "DIGL" for  AFSK modes
rather than RTTY & RTTY-R.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4895 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-11 16:18:37 +00:00
Bill Somerville
f4db871ebd Rig polling not detecting changes against cached values correctly
The  PollingTransceiver class  was not  dealing with  frequency change
commands correctly when the mode was not specified.

Improved some diagnostic messages.

Only leave transmit mode when PTT is seen to drop.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4886 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-08 23:51:56 +00:00
Bill Somerville
f88870df60 Added device error message to file open error messages
Thanks to  Mike W9MDB for contributing  this as a patch.  Also added a
few more in elsewhere.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4883 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-06 19:00:46 +00:00
Bill Somerville
142f9eb2bd The Elecraft K3 is very picky about going to split mode
We have to ensure  that the band and mode along  with the frequency of
both VFOs is set before attempting to enable split mode.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4879 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-01-02 21:49:41 +00:00
Joe Taylor
7d02ab0e10 Add nfft.out (output from chkfft, on a Dell laptop).
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4848 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-22 14:06:40 +00:00
Joe Taylor
b9d5ebbb31 Some final(?) tweaks and additions to the chkfft mini-package.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4838 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-18 21:06:21 +00:00
Joe Taylor
ccba704126 A few more tweaks, and add the file nfft.dat of efficient FFT lengths.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4837 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-18 20:53:16 +00:00
Joe Taylor
01d0b747bc Several tweaks to chkfft.f90. Add descriptive file chkfft.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4836 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-18 20:34:06 +00:00
Joe Taylor
20dd76d5d9 Add chkfft.f90; more thorough comments in four2a.f90.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4835 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-18 16:41:18 +00:00
Bill Somerville
d0004454f4 Don't try and generate an MD5 hash on a missing kvasd binary
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4831 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-17 00:55:00 +00:00
Bill Somerville
e83513f155 Optimized kvasd download in build
The kvasd binary  need only be downloaded  if the MD5 hash  for it has
changed.

Also fixed a defect in the status check of the MD5 hash download.

Also switched to HTTP protocol as  it is quick and gives clearer error
messages.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4830 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-16 17:58:01 +00:00
Bill Somerville
65d6d9d071 Allow for errors reading kvasd MD5 hash file during build downloads
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4829 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-12-16 17:19:38 +00:00