On 12/3/18 5:43 PM, Matthew Knepley wrote:
On Mon, Dec 3, 2018 at 8:35 PM Mills, Richard Tran via petsc-dev 
<petsc-dev@mcs.anl.gov<mailto:petsc-dev@mcs.anl.gov>> wrote:
Sorry, everyone, for how long it took me to have time to get back to this. I 
tried the change I suggested in my previous message, but configure fails with

*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for 
details):
-------------------------------------------------------------------------------
Did not find package MKL_SPARSE_OPTIMIZE needed by mkl_sparse_sp2m.
Enable the package using --with-mkl_sparse_optimize
*******************************************************************************

Does this happen because I have specified that this is a "look for by default" 
package? What I'd like to happen is that this package be looked for my default, 
in fact, but if MKL_SPARSE_OPTIMIZE is not present or disabled, then I'd like 
the test for mkl_sparse_sp2m to fail gracefully and configure to continue. That 
is: I don't want the fact that I am looking for this package automatically to 
imply that it HAS to be there. Is there any easy way to get this behavior?

Put it in the optional packages list. Then check explicitly that it was found 
in the sp2m configure method.
Hmm. I'm not sure that I understand what you are suggesting, Matt. (Maybe 
because what I wrote wasn't clear to begin with.) The way things are set up 
right now, there is a "package", mkl_sparse_sp2m, that depends on the "package" 
mkl_sparse_optimize. I want configure to always check for mkl_sparse_optimize 
unless the user explicitly specifies not to, and I'd like the same thing for 
mkl_sparse_sp2m. But the latter cannot be used unless mkl_sparse_optimize is 
present and enabled. I'd think that the way things ought to work (not saying 
that it does work this way) is that I should be able to specify that 
mkl_sparse_sp2m requires mkl_sparse_optimize, and that I want to look for 
mkl_sparse_sp2m by default -- and configure should determine that 
mkl_sparse_sp2m should not be enabled if mkl_sparse_optimize is not 
present/enabled. I'm not sure how to make this work.

Of course, the above may be all academic, as I think it is better to try to put 
the mkl_sparse_sp2m stuff in mkl_sparse_optimize.py. mkl_sparse_sp2m is really 
just a feature associated with mkl_sparse_optimize in the more recent editions 
of MKL, and I don't think there should be two "packages" associated with this. 
I'm going to take a stab at rolling these into one package.

--Richard

  Thanks,

    Matt

--Richard

On 11/27/18 2:15 PM, Smith, Barry F. wrote:

On Nov 26, 2018, at 6:12 PM, Mills, Richard Tran via petsc-dev 
<petsc-dev@mcs.anl.gov><mailto:petsc-dev@mcs.anl.gov> wrote:

Hi Stefano,

Apologies for the slow reply; I was out for the US Thanksgiving Holiday.

You've found an error in the logic for the MKL configure tests: Your MKL does 
indeed have mkl_sparse_sp2m(), but since this depends on having 
mkl_sparse_optimize() and you have specified '--with-mkl_sparse_optimize=0', 
PETSC_HAVE_MKL_SPARSE_SP2M either ought to not be defined, or in my AIJMKL code 
I should only enable the SP2M code if PETSC_HAVE_MKL_SPARSE_OPTIMIZE is 
defined. I think I like the former option better. For those more familiar with 
BuildSystem than I am, I think I can do this by putting the following in 
setupDependencies() in mkl_sparse_sp2m.py:

    self.mkl_sparse_optimize  = 
framework.require('config.packages.mkl_sparse_optimize', self)
    self.deps                           = 
[self.blasLapack,self.mkl_sparse_optimize]


    Looks ok to me. Make a pull request with Satish as a reviewer.

   Barry



Is that all that is required?

--Richard

On 11/21/18 10:59 PM, Stefano Zampini wrote:


Richard,

I just noticed that PETSc master does not build with the options

    '--with-mkl_pardiso-dir=/soft/com/packages/intel/18/u3/mkl',
    '--with-mkl_sparse_optimize=0',

This is on frog at MCS, but it will be the same on other machines as the macros 
configuration

PETSC_HAVE_MKL_SPARSE_OPTIMIZE not defined
PETSC_HAVE_MKL_SPARSE_SP2M defined

does not seem to be supported.

/nfs2/szampini/src/petsc/src/mat/impls/aij/seq/aijmkl/aijmkl.c(797): error: 
struct "<unnamed>" has no field "csrA"
    csrA = a->csrA;

Could you please take a look? Why is the mkl_sparse_sp2m package flagged as 
lookforbydefault in the configure scripts?

Thanks
--
Stefano




--
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

https://www.cse.buffalo.edu/~knepley/<http://www.cse.buffalo.edu/%7Eknepley/>

Reply via email to