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
This commit is contained in:
Bill Somerville
2015-02-02 11:24:20 +00:00
parent 3d112ab26c
commit ffdeafe3bb
2 changed files with 38 additions and 13 deletions
+4 -6
View File
@@ -50,17 +50,16 @@ subroutine decoder(ss,id2)
if(nmode.eq.65) go to 800
! print*,'A'
!!$OMP PARALLEL PRIVATE(id)
!!$OMP SECTIONS
!$OMP PARALLEL SECTIONS PRIVATE(id)
!!$OMP SECTION
!$OMP SECTION
! print*,'B'
call timer('decjt9 ',0)
call decjt9(ss,id2,nutc,nfqso,newdat,npts8,nfa,nfsplit,nfb,ntol,nzhsym, &
nagain,ndepth,nmode)
call timer('decjt9 ',1)
!!$OMP SECTION
!$OMP SECTION
if(nmode.ge.65 .and. (.not.done65)) then
if(newdat.ne.0) dd(1:npts65)=id2(1:npts65)
nf1=nfa
@@ -71,8 +70,7 @@ subroutine decoder(ss,id2)
call timer('jt65a ',1)
endif
!!$OMP END SECTIONS NOWAIT
!!$OMP END PARALLEL
!$OMP END PARALLEL SECTIONS
! print*,'D'
! JT65 is not yet producing info for nsynced, ndecoded.