SWIFTSIM / SWIFT

Modern astrophysics and cosmology particle-based code. Mirror of gitlab developments at https://gitlab.cosma.dur.ac.uk/swift/swiftsim
http://www.swiftsim.com
GNU Lesser General Public License v3.0
88 stars 58 forks source link

ParMETIS can't find when configuring #21

Closed JingyaoDOU closed 2 years ago

JingyaoDOU commented 2 years ago

Dear Swift team, I'm having some compile issues when trying to use ParMETIS on our HPC, the error goes below:

checking for ParMETIS_V3_RefineKway in -lparmetis... no
checking for ParMETIS_V3_PartKway in -lparmetis... no
configure: error: "Failed to find a ParMETIS library"

And configure like this:

./configure --with-parmetis=/mnt/storage/apps/parmetis/4.0.3

What includes in the directory of apps/parmetis/4.0.3 are just:(last four are executable)

Makefile  cmake_install.cmake  mtest  parmetis  pometis  ptest

The HPC staff just got ParMETIS installed and gives me no instruction on how to use it, please give me some suggestion on how to fix this problem. Cheers!

bwvdnbro commented 2 years ago

The configuration is really looking for the ParMETIS library, so a file called libparmetis.so or libparmetis.a. It will also need the location of the header files metis.h and parmetis.h. In a standard ParMETIS install (I'm looking at the ParMETIS installation on the COSMA cluster in Durham) the directory apps/parmetis/4.0.3 should have 3 subdirectories called bin, include and lib. Passing on apps/parmetis/4.0.3 to configure should then work. It looks however like this is not the case for you. Either these files are in a different location, or your ParMETIS installation does not include them. I would recommend asking the HPC staff where to find these files.

pwdraper commented 2 years ago

Agreed, that list of file is odd. They are mainly the executables of parmetis. The --with-parmetis option should point at the head of the place that parmetis was installed into. That should look like:

./include
./include/parmetis.h
./include/metis.h
./lib
./lib/libparmetis.so
./bin
./bin/ptest
./bin/mtest
./bin/parmetis
./bin/pometis
JingyaoDOU commented 2 years ago

Thank you for the reply, looks like the package was installed weirdly, I will check it with the HPC staff. Thank you again for your time!

JingyaoDOU commented 2 years ago

Dear SWIFT team,

Sorry to bother you again, the HPC staff update the ParMETIS lib, but SWIFT still can't find the lib even though I try all the available lib PATH passing to --with-parmetis. Now the ParMETIS looks like this on the HPC, do you think it might be because of the missing of libparmetis.so and metis.h header file? parmteis-all May I also ask something else: how can I turn on the deadtime report of the timesteps_xxx.txt file, I compiled swift on two HPC with basically similarly way but deadtime is somehow not reported in one of the HPC's timesteps.txtfile. I can see deadtime is reported in the output log if I turn to use verbose output 1 ./swift -v 1, but it's missing in timestep.txt.

Thank you very much for your time and patience!

bwvdnbro commented 2 years ago

The dead time column was only added to timesteps.txt last week, so if your SWIFT version is older than that, it will not have it. This is not a feature that can be switched on or off.

pwdraper commented 2 years ago

I expect it is because of the missing metis.h file. Last time I tried to build parmetis it missed out installing that, so I copied it into place myself. Re: the missing .so files. You have the .a libraries, so that should work, building the shared libraries is optional, but I would usually expect it.