pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Package options dialog

On 05/07/18 08:13, Sevan Janiyan wrote:
Hi Jason,

On 07/05/2018 03:41, Jason Bacon wrote:
Case in point, I happen to be in a conversation right now with the
developer of plink, a genomics analysis app.  He's reported that it
performs much better with SSE4.2, and much better still with AVX2,
features that are not available on many CPUs still in operation, so they
cannot be part of the default binary package.

IT skills are scarce in biology research.  Computational research is
still rather new in this domain, but growing incredibly fast.

Inability to properly deploy software is a huge problem that can be
addressed with tools that already exist.

So picture a biologist with limited computer skills, thousands of
core-hours of computation between h{im,er} and a grant deadline, and no
Unix-savvy IT staff to help deploy an open source app like plink.  Using
the portable binary package could add weeks to the analysis time.  They
have no idea was SSE or AVX are.

A relatively small number of packagers can have a huge impact, because
many researchers are struggling to deploy the same few applications.

There are many possible solutions, but the one that's in easy reach
pkgsrc right now is making it easy for them to boostrap a pkgsrc tree
and built optimizes binaries from source, using -march=native or
something similar.

If I can tell someone like this to build the package from source and
select native optimizations from the config menu, this is something can
easily handle, and their research will get done much sooner.

Just one of many examples, some of which could be package options and
others global settings.
Is it possible to automate this process in your scenario so a user would
not be exposed to the plethora of options by default?
We have the devel/cpuflags package which tries to address the optimum
CPU flags on a build system.


Yes, thanks for pointing that out.

In theory, I think -march=native alone achieve this with clang and gcc, and this is what I've been looking at.

I see that cpuflags adds some additional flags:

netbsddev /usr/pkgsrc/wip/plink2 # cpuflags
-mfpmath=sse -msse3 -march=native

I assume cpuflags is compensating for GCC shortcomings.  I'll do some comparisons on our systems.

It doesn't appear to directly support clang, although I would guess it will work at least pretty well, given the high level of compatibility with GCC.



Home | Main Index | Thread Index | Old Index