On 09/09/2016 10:50 AM, Jakub Jelinek wrote:
On Fri, Sep 09, 2016 at 10:22:19AM -0600, Orion Poplawski wrote:
> On 09/09/2016 08:24 AM, Jerry James wrote:
>> There is no soname bump in this release, but one section of the API
>> changed in a backwards-incompatible way.
>
> If they broke ABI, why wasn't the soname bumped?
>
>> If the suitesparse maintainer does not object, I would also like to
>> fix something I noticed in the build logs. GCC complains about
>> unrecognized pragmas.
>> - #pragma ivdep: I propose to change all instances of this to #pragma GCC ivdep.
>> - #pragma novector: there is no GCC equivalent, so nothing can be done here.
>> - #pragma omp ...: I propose to build CHOLMOD with -fopenmp so these
>> will be defined and used.
>
> I'm concerned about this last change - if I understand it correctly everything
> that link to CHOLMOD will now need to use -fopenmp as well. I'm not
> necessarily opposed to this, but it does have larger ramifications. I know in
> various places libraries will provide both serial and openmp versions. I
> wonder if it's time for Fedora to work out a scheme for this, or perhaps
> simply embrace the multi-core age and accept openmp versions as standard.
Why would you need to compile all other libraries that use something with
-fopenmp just because you built something with -fopenmp? If it is a shared
library, it will be (have to be) linked with -fopenmp and thus link libgomp
and libpthread, but other libraries can still be serial or use
POSIX threads on their own. If it is a static library, sure, you need to
make sure you link with -fopenmp whatever links that static library in, but
that doesn't mean you need to compile anything else with -fopenmp.
If the library compiled with -fopenmp calls into code from other libraries
from parallel regions, sure, you need to make sure that those functions are
thread safe, but that is about it.
Jakub
Ah, yes, thanks for the clarification. However, suitesparse does ship static
libraries, so at least for those I think the openmp versions should be named
different.
One question I have though is if the application using the shared openmp
compiled library is not linked with -fopenmp, will the openmp code in the
library get activated or not?
--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane orion(a)nwra.com
Boulder, CO 80301
http://www.nwra.com