I don't think you'll find any gain using FFTW openmp.  WSJT-X does not do
big enough FFTs to overtake the thread create/delete overhead.

I worked a job a few years ago on a 512-core machine doing FFTs on synthetic
aperture radar systems.  Using FFTW with OpenMp did very little good.  Using
OpenMP at the layer above did...which is the same thing I think we'll find
here.
OpenMP inside FFTW for small FFTs wil have the overhead dominate and defeat
it.

We're already seeing only a 20-25% improvement in openmp at this level which
is a clear indication to me that we're not getting anywhere near 100% gain
for threading so doing it at a lower level isn't worth it.
When I did my 512-core system I was getting over 90% gain for each thread I
added.
Much like "don't sweat the small stuff" I think you''ll find "don't
multi-thread the small FFTs" is a good paradigm...
When you got a ~50% gain then it's time to look at multi-threading below
that level.

Mike W9MDB


-----Original Message-----
From: Bill Somerville [mailto:[email protected]] 
Sent: Wednesday, February 04, 2015 8:21 AM
To: [email protected]
Subject: Re: [wsjt-devel] v4926 OpenMP

On 04/02/2015 14:05, John Nelson wrote:
> Hi Bill and Joe,
Hi John,
>
> With regard to Mac builds, your [Bill] code test with workspace and
workspace_mt executes correctly with my gfortran compiler.   However, as you
point out the current clang/clang++ do not [yet] have OpenMP support.
>
> So when I compile fftw_3.3.4 with --enable-threads, I cannot also use
--with-openmp.  I also get:
>
> -- Try OpenMP C flag = [ ]
> -- Performing Test OpenMP_FLAG_DETECTED
> -- Performing Test OpenMP_FLAG_DETECTED - Failed
I am experimenting with the MacPorts gcc 4.9 suite with building WSJT-X. 
That needs changes to the CMake script which I have not committed yet. 
So far it doesn't seem to be necessary to build or use the OpenMP version of
FFTW3, the native/pthreads version is working well and seems to be
compatible with an OpenMP program. I believe the only issue is that we need
to control the number of threads used by FFTW3 and OpenMP manually to a
certain extent. If it does become necessary to use the OpenMP version of
FFTW3, that can be built on Mac, again I have the MacPorts version
available.

There also appears to be a bug in CMake that is causing it not to pass on
the portability options to the gcc compilers/linker (MAC_OSX_SYSROOT and
MAC_OSX_DEPLOYMENT_TARGET). This is not serious and can be worked around if
necessary but I want to get it sorted out properly if possible.

My current focus apart from v1.4 issues is to help Joe with multi-threading
hazards in jt9 but I am working on the Mac builds with OpenMP as well.
>
> when building WSJT-X r4928 which is currently executing successfully - and
certainly decodes rapidly.
You are getting the latest performance increases which are significant. 
The OpenMP jt9, which is not in WSJT-X yet, has the potential to almost half
decoding times in dual JT65+JT9 mode when there is equivalent work to be
done in each mode.
>
> --- John G4KLA
73
Bill
G4WJS.

----------------------------------------------------------------------------
--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel


------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to