Closed davydden closed 9 years ago
I get
/usr/local/opt/parmetis/include/parmetis.h:33:4: error: "Incorrect user-supplied value fo IDXTYPEWIDTH"
#error "Incorrect user-supplied value fo IDXTYPEWIDTH"
^
I have parmetis 4.0.3
. Do you have the same?
The error above is when you compile the same config I as, or with Python
?
also version of metis
might be important, i have 5.1.0
.
I'm using everything from Homebrew, so yes, ParMetis 4.0.3 and Metis 5.1.0.
Trying to build --without-parmetis
fails because superlu_dist
should also be disabled in that case.
I'm configuring with the same options you gave (without Python).
could you attach config log? I want to see what is different between mine and yours.
Trying to build --without-parmetis fails because superlu_dist should also be disabled in that case.
I hope i just fixed it.
I just tried to build --without-parmetis --without-superlu_dist
and now I get
/tmp/new-trilinos-in45jG/trilinos-11.12.1-Source/packages/zoltan/src/tpls/third_library_const.h:178:6: error: "Unsupported version of ParMETIS; use ParMETIS 3.1 or 4."
#error "Unsupported version of ParMETIS; use ParMETIS 3.1 or 4."
^
I've seen that error before.
well.. another thing is that I do not use bottles. Not necessarily it's related, but
could you set homebrew to compile on spot and then reinstall metis
and reinstall parmetis
and also attach Trilinos configure log? I am sure brew doctor
does not complain for you...
I have a feeling that either Trilinos picks up something wrong at your system or something is broken. I do not have anything like that and I built have built Trilinos some tens times from scratch while figuring out which options work and which do not.
p.s. which osx do you have?
I never use bottles. I'm on 10.9 but I was sure I had resolved that issue with the help of one of the developers. I'll try and reinstall.
A colleague of mine build trilinos on 10.9 without issues with parmetis
using Formula from my fork of homebrew-science (which is almost the same as this one). But he started using Homebrew just a couple of days ago...
It couldn't be mavericks
vs yosemite
...
No go. parmetis
is blocking. Here are my logs: https://gist.github.com/f417dc64ffbd7ab59ec3
1) i have: shylu, teko, cholmod, glpk, hypre (head), hdf5, glm
on and python
off.
Could you first try building with exactly the same config as above?
2) I think there is something wrong with your metis/parmetis (This is my best bet): Mine:
-- Processing enabled TPL: ParMETIS -- ParMETIS_LIBRARY_DIRS='/usr/local/opt/parmetis/lib' -- Searching for library 'parmetis' ... -- Found ParMETIS TPL library: /usr/local/opt/parmetis/lib/libparmetis.a -- Searching for library 'metis' ... -- Found ParMETIS TPL library: /usr/local/lib/libmetis.dylib -- TPL_ParMETIS_LIBRARIES='/usr/local/opt/parmetis/lib/libparmetis.a;/usr/local/lib/libmetis.dylib' -- Found ParMETIS TPL header: /usr/local/opt/parmetis/include/parmetis.h -- Found ParMETIS TPL header path: /usr/local/opt/parmetis/include -- TPL_ParMETIS_INCLUDE_DIRS='/usr/local/opt/parmetis/include
Yours:
-- Processing enabled TPL: ParMETIS -- ParMETIS_LIBRARY_DIRS='/usr/local/opt/parmetis/lib' -- Searching for library 'parmetis' ... -- Found ParMETIS TPL library: /usr/local/opt/parmetis/lib/libparmetis.a -- Searching for library 'metis' ... -- Found ParMETIS TPL library: /usr/local/opt/metis4/lib/libmetis.dylib -- TPL_ParMETIS_LIBRARIES='/usr/local/opt/parmetis/lib/libparmetis.a;/usr/local/opt/metis4/lib/libmetis.dylib' -- Found ParMETIS TPL header: /usr/local/opt/parmetis/include/parmetis.h -- Found ParMETIS TPL header path: /usr/local/opt/parmetis/include -- TPL_ParMETIS_INCLUDE_DIRS='/usr/local/opt/parmetis/include'
Could that be that you have parmetis compiled against head metis and metis4 also symlinked which confuses Trilinos?
3) My second best bet is that I use clang
and according to make logs you compile with gcc-4.9
.
When I was compiling everything manually, i was using gcc always. When I switched to Homebrew, i was trying to use gcc consistently, but there were some issues and I could not make it work.
Are you sure that all libraries Trilinos try to use are compiled with gcc and there is no mixture of gcc and clang? To my understanding, this is generally not advised. This is what PETSc homepage have to say about it: http://www.mcs.anl.gov/petsc/documentation/installation.html
All packages will be installed with the same set of compilers - this avoids problems [for example weird link time errors] with mixing code compiled with multiple compilers [for example mixing gfortran and ifort compiled code].
4) It could be that there some bug in Trilinos and it doesn't compile with gcc-4.9
, but does work with gcc-4.8
, for example.
I certainly have both metis4
and metis
(v5) installed concurrently. It's probably CMake picking up the wrong one and the formula should specify the path to the Metis libs.
I hardcode metis and parmetis libraries 3798119241af08bfd24c0c23a606dfdfa190edc5
I'll give it a try. For sanity, I went back to my old gist and that builds (with ParMETIS
disabled). Isn't there a -DTMETIS_LIBRARIES=...
options?
how about that one 86cbb0402cbf7becb672eff2cb9c58c2e0041af5 ?
That seems to have resolved the ParMETIS issue. It's still building though... I'm testing on Mavericks and Yosemite.
there was a bug in those include
and libraries
. I am fixing it now...
should be better now: 0c56547408a4ad8d895827f3df67595e7cfb6f53
That makes sense. Thanks for spotting that. I'll give it a try.
Success! I can build on Mavericks with
--with-cholmod --with-glm --with-glpk --with-hdf5 --with-hypre --with-shylu --with-teko
(i.e., including Python!). We should decide what should be :optional
and what should be :recommended
. The formula also needs a little cleaning. We should also probably wait for 11.4 to come along, which is supposed to be quite soon.
I'll try and build in C++11 mode. In the mean time I wrote a tentative update to SuperLU_Dist 4.0. Unfortunately, the tests fail.
I am afraid you need to downgrade to 3.3. Neither Pets nor Trilinos currently support 4.0. Both packages should do that in the next release, though.
as for :optional
and :recommended
, I would try not to turn on by default too many experimental TPLs
and would prefer the :recommended
list to contain at least: :mpi
,:fortran
, boost
,netcdf
,suite-sparse
,parmetis
,mumps
,scalapack
,superlu
,superlu_dist
,hypre
,tbb
.
Perhaps this decision should be consistent with Petsc https://github.com/Homebrew/homebrew-science/pull/1694
I am afraid you need to downgrade to 3.3. Neither Pets nor Trilinos currently support 4.0. Both packages should do that in the next release, though.
I know. I was just preparing an upgrade for homebrew/science.
In petsc.rb
, basically everything is enabled. I'd like to enable as much as possible so that bottles can be relied upon.
i am perfectly happy when everything is enabled ;-)
I successfully built our formula against MPICH!
cool! sounds good!
Since the Trilinos update isn't coming, I decided to submit a PR with our new formula. See https://github.com/Homebrew/homebrew-science/pull/1779.
Thanks a lot, @dpo!
I think I did all I could to make it compiling with as many other Formulae as possible. With the current state of the formula (71ccf1b5a598e48f3c70ab957435b02c289bb1af) it compiles fine for me with
that triggers everything (!) but
--c++11
andpython
.@dpo please, give it a try and see if it satisfies your needs and builds ok on you setup. If all is good, I would like to create a PR, as, to my knowledge, there is no indication of newer trilinos version coming soon with the remaining issues fixed. Once it goes to
homebrew-science
,deal.II
(https://github.com/Homebrew/homebrew-science/pull/1299) could be finally added as well, which was my original motivation.p.s. in case some of the current limitations got fixed, then subsequent PR would be easy to do to un-lock certain dependencies likes
qd
,petsc
, etc. I hope we can keep all the comments as they document the current unresolved issues.