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
<[email protected]<mailto:[email protected]>> 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
<[email protected]><mailto:[email protected]> 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/>