[petsc-users] [petsc-dev] mkl-cpardiso configuration

Barry Smith bsmith at mcs.anl.gov
Sun Oct 6 21:54:53 CDT 2013


   Jose,

    Since you are currently working on interfacing cpardiso I would just have a cpardiso.py (or cpardiso_mkl.py) (and NO mkl.py) that manages/lists the libraries needed for cpardiso. Don't have both a cpardiso.py and cpardiso_mkl.py. 

    Since, as Satish reports, cpardiso.py brings in also the mkl blas/lapack I would also have the cpardiso.py script check that the blas/lapack libraries being linked are compatible with the cpardiso mkl libraries being brought in and provide a useful error message telling them how to set the blas/lapack libraries to fix the problem when needed.

   We definitely do not want to muddy up the already horrible blaslapack.py code by introducing the concept of cpardiso there.

    Anyways, once you've simplified things, just make a pull request at bitbucket and we can try it and help with the kinks.


   Barry



On Oct 6, 2013, at 9:07 PM, Jose David Bermeol <jbermeol at purdue.edu> wrote:

> Well actually I should change the name of the file mkl.py to mkl_cpardiso.py. It doesn't pick up any blas/lapack library. So it would be save and convenient to have it as a separate package(just to keep things modular and simple). If in a near future the solver would need a blas/lapack library I would agree that the blaslapack.py should take care of the installation of the solver.  
> 
> ----- Original Message -----
> From: "Satish Balay" <balay at mcs.anl.gov>
> To: "Jose David Bermeol" <jbermeol at purdue.edu>
> Cc: "Barry Smith" <bsmith at mcs.anl.gov>, petsc-users at mcs.anl.gov, "For users of the development version of PETSc" <petsc-dev at mcs.anl.gov>
> Sent: Sunday, October 6, 2013 9:57:50 PM
> Subject: Re: [petsc-dev] [petsc-users] mkl-cpardiso configuration
> 
> If one specifies '--with-mkl=/foo/bar --download-f-blas-lapack' or
> just '--with-mlk=/foo/bar' where configure picks up /usr/lib/libblas.a
> etc - then things will break.
> 
> So somehow these two options should work together - and perhaps the
> way they can do is within blaslapack.py [and not a separate mkl.py]
> 
> Satish
> 
> On Sun, 6 Oct 2013, Jose David Bermeol wrote:
> 
>> Exactly
>> ----- Original Message -----
>> From: "Barry Smith" <bsmith at mcs.anl.gov>
>> To: "Matthew Knepley" <knepley at gmail.com>
>> Cc: "Jose David Bermeol" <jbermeol at purdue.edu>, petsc-users at mcs.anl.gov, "For users of the development version of PETSc" <petsc-dev at mcs.anl.gov>
>> Sent: Sunday, October 6, 2013 9:49:59 PM
>> Subject: Re: [petsc-dev] [petsc-users] mkl-cpardiso configuration
>> 
>> 
>>   Because he is using other stuff in mkl besides blas/lapack!
>> 
>> On Oct 6, 2013, at 8:43 PM, Matthew Knepley <knepley at gmail.com> wrote:
>> 
>>> On Sun, Oct 6, 2013 at 8:04 PM, Jose David Bermeol <jbermeol at purdue.edu> wrote:
>>> Hi, one question about how to configure a new package, intel people suggest to compile mkl-cpardiso using the following flags for the linker:
>>> 
>>> -Wl,--start-group -L$(MKL_PATH)/lib/intel64/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,--end-group -lpthread -lm -liomp5
>>> 
>>> Now I want to be able to do this just using the flag --with-mkl-dir=$(MKL_PATH) during Petsc configuration. I've been trying to modify my mkl.py file to achieve this, however your configuration system is a little bit complex, so if you code give some guidelines to achieve this or files to look how to do it would be great.
>> 
>>   Make a pull request with all your current stuff and we can look at how you've organized it and make suggestions. Otherwise it is too much email guess work with incomplete information.
>> 
>>   Barry
>> 
>>> 
>>> Is there a reason you do not want to use --with-blas-lapack-lib?
>>> 
>>>  Thanks,
>>> 
>>>    Matt
>>> 
>>> Thanks
>>> 
>>> 
>>> 
>>> -- 
>>> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
>>> -- Norbert Wiener
>> 



More information about the petsc-users mailing list