[Debian-med-packaging] Bug#729537: Bug#756392: enable SIMD and threading support

Andreas Tille andreas at an3as.eu
Tue Jul 29 14:35:26 UTC 2014


[Robert, sorry for the long silence to bug #729537.  While we now have
more recent versions of RAxML in Debian the sse3-pthreads hint of yours
was not regarded but may be since this is now on the table you might
like to have some word about it as well.]


Hi,

I tried to implement Elmar's hint about enabling SIMD and threading
support.  So far I managed in SVN the creation of the executables
resulting from the following Makefiles:

	Makefile.gcc
        Makefile.PTHREADS.gcc
        Makefile.SSE3.PTHREADS.gcc
        Makefile.AVX.PTHREADS.gcc

However, when thinking about, users might be used to call raxmlHPC and
thus the wrapper should get this name and we could throw away the result
of Makefile.gcc.  Is this correct or not?  Is there any possibility that
the vanilla raxmlHPC might be used under some circumstance in practical
cases as last resort?

What about Makefile.AVX2.PTHREADS.gcc ?

Once we are talking about it:  We have some Debian programs were we
deliver a "pure" and a "mpi" binary package.  If I understood Elmar
correctly the results of

	Makefile.AVX.HYBRID.gcc
	Makefile.AVX.MPI.gcc
	Makefile.AVX2.HYBRID.gcc
	Makefile.AVX2.MPI.gcc
	Makefile.SSE3.HYBRID.gcc
	Makefile.SSE3.MPI.gcc

(Yup I could follow the advise to read
   http://sco.h-its.org/exelixis/pubs/Exelixis-RRDR-2010-3.pdf
but I feel more comfortable to follow the advise of people who have
read / written the paper. ;-))

I simply might get the best package layout for our users and I need your
(= a users) help to approach this.

Kind regards and many thanks for your input

      Andreas.

On Tue, Jul 29, 2014 at 02:37:44PM +0200, Elmar Pruesse wrote:
> Package: raxml
> Version: 7.2.8-2
> Severity: wishlist
> 
> Dear Maintainer,
> 
> the current RAxML package contains only the "vanilla" version of RAxML
> compiled without support threading or SIMD. Given that typical use cases
> of RAxML require days of computation, enabling parallel processing would
> improve the utility of the package significantly.
> 
> RAxML does not detect the available hardware at runtime. Instead,
> separate Makefiles build the various optimized versions. Supported SIMD
> variants are: (none), SSE3, AVX and AVX2. Supported threading variants
> are: (none), PTHREADS, MPI and HYBRID (both pthreads and MPI).
> 
> The makefile names are "Makefile.<SIMD-TYPE><THREAD-TYPE>gcc".
> 
> Since most users will have multi-core CPUs and only very few a MPI
> environment, focusing on the PTHREAD variants with SIMD extensions
> should be a good balance between package complexity and extra value. The
> AVX2 extensions apparently do not add much performance. Therefore, I
> would suggest building three versions:
> - Makefile.PTHREADS.gcc
> - Makefile.PTHREADS.SSE3.gcc
> - Makefile.PTHREADS.AVX.gcc (depends >= gcc 4.6)
> 
> A simple bash wrapper script could then be used to make the appropriate
> choice for the user. E.g.:
> 
> ----
> #!/bin/bash
> 
> if grep -q avx /proc/cpuinfo; then
>   exec raxml.PTHREADS.AVX "$@"
> elif grep -q sse3 /proc/cpuinfo; then
>   exec raxml.PTHREADS.SSE3 "$@"
> else
>   exec raxml.PTHREADS.NOSIMD "$@"
> fi
> ----
> 
> best regards,
> Elmar
> 
> _______________________________________________
> Debian-med-packaging mailing list
> Debian-med-packaging at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-packaging
> 

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list