noaa-ocs-modeling / CoastalApp

CoastalApp will be deprecated. Please switch to https://github.com/oceanmodeling/ufs-coastal . CoastalApp is a NUOPC application implemented following UFS best practices to couple coastal ocean models and other domains (Sea Ice, Atmosphere, Wave, Inland Hydrology, ...)
https://github.com/oceanmodeling/ufs-coastal
Creative Commons Zero v1.0 Universal
13 stars 30 forks source link

ParMETIS does not compile on femto/intel with failure to include "GKlib.h" #139

Closed platipodium closed 1 year ago

platipodium commented 1 year ago

@pvelissariou1

cd thirdparty_open/parmetis
make config
make

results in

make[3]: Entering directory `/sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/build/Linux-x86_64'
[  1%] Building C object libparmetis/CMakeFiles/parmetis.dir/akwayfm.c.o
cd /sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/build/Linux-x86_64/libparmetis && /usr/local/skylake/linux-centos7-x86_64/intel-18.0.5/openmpi-3.1.4-nrpbrsazh5ctfqireohisqylydu43wne/bin/mpicc  -I/sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/include -I"/sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/~/local/include" -I/sciclone/home20/clemmen/local/include -I/sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/libparmetis/.  -DLINUX -D_FILE_OFFSET_BITS=64 -xHost -DNDEBUG -DNDEBUG2 -DHAVE_EXECINFO_H -DHAVE_GETLINE -O3   -o CMakeFiles/parmetis.dir/akwayfm.c.o   -c /sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/libparmetis/akwayfm.c
In file included from /sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/libparmetis/akwayfm.c(14):
/sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/libparmetis/./parmetislib.h(20): catastrophic error: cannot open source file "GKlib.h"
  #include <GKlib.h>
                    ^

compilation aborted for /sciclone/home20/clemmen/devel/noaa/CoastalApp/thirdparty_open/parmetis/libparmetis/akwayfm.c (code 4)
pvelissariou1 commented 1 year ago

Try to use the develop_build branch (soon to be merged with develop). Build scripts have been updated (scripts/*) to accommodate ParMETIS builds for both Intel and GNU.

pvelissariou1 commented 1 year ago

Please use develop_build branch (soon to be merged with develop). See issue https://github.com/noaa-ocs-modeling/CoastalApp/issues/138 for more details on ParMETIS compilation issues. Use scripts/download_parmetis.sh to download ParMETIS.

platipodium commented 1 year ago

While trying this, I noticed that on macOS it fails with

/Users/Lemmen/devel/noaa/CoastalApp-dev/thirdparty_open/parmetis/GKlib/graph.c: In function 'gk_graph_Read':
/Users/Lemmen/devel/noaa/CoastalApp-dev/thirdparty_open/parmetis/GKlib/graph.c:297:26: error: format '%lld' expects argument of type 'long long int *', but argument 3 has type 'ssize_t *' {aka 'long int *'} [-Werror=format=]
  297 |         if (fscanf(fpin, "%"SCNd64" %"SCNd64, &i, &i) != 2)
      |                          ^~~                  ~~
      |                                               |
      |                                               ssize_t * {aka long int *}
In file included from /Users/Lemmen/devel/noaa/CoastalApp-dev/thirdparty_open/parmetis/GKlib/./gk_arch.h:43,
                 from /Users/Lemmen/devel/noaa/CoastalApp-dev/thirdparty_open/parmetis/GKlib/./GKlib.h:23,
                 from /Users/Lemmen/devel/noaa/CoastalApp-dev/thirdparty_open/parmetis/GKlib/graph.c:10:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/inttypes.h:157:53: note: format string is defined here
  157 | #  define SCNd64        __SCN_64_LENGTH_MODIFIER__ "d"
platipodium commented 1 year ago

I tested with the develop_build branch and it worked on femto.

Also tested on linux with the develop_build branch and it worked.

Thanks for your clarification, please merge speedily into develop so we can pull the changes downstream