LBL-EESA / TECA

TECA, theToolkit for Extreme Climate Analysis, contains a collection of climate anlysis algorithms targetted at extreme event detection and analysis.
Other
55 stars 21 forks source link

Installing TECA on Cori #465

Closed lpassarella closed 4 years ago

lpassarella commented 4 years ago

I am trying to install TECA on the Cori super computer but keep running into build errors. Is there a trick to installing on a NERSC machine? I was following the superbuild instructions. Or is TECA already installed on Cori somewhere?

Thanks!

burlen commented 4 years ago

Here is a link to the installation instructions https://teca.readthedocs.io/en/develop/installation.html

If you find that those instructions don't work, could you post more information about what you're doing and what is going wrong?

lpassarella commented 4 years ago

It got to this point here: `[ 97%] Performing configure step for 'TECA' -- Cray Programming Environment 2.6.2 C -- Cray Programming Environment 2.6.2 CXX -- Cray Programming Environment 2.6.2 Fortran -- Configuring a Release build -- Check for c++ regex support -- Check for c++ regex support -- enabled -- MPI features -- enabled -- NETCDF_LIBRARY-NOTFOUND -- Could NOT find NetCDF (missing: NETCDF_LIBRARIES) CMake Error at CMakeLists.txt:144 (message): NetCDF features -- required but not found. set NETCDF_DIR to enable.

-- Configuring incomplete, errors occurred! See also "/global/project/projectdirs/e3sm/lpass/TECA_superbuild/build/TECA-prefix/src/TECA-build/CMakeFiles/CMakeOutput.log". make[2]: [CMakeFiles/TECA.dir/build.make:117: TECA-prefix/src/TECA-stamp/TECA-configure] Error 1 make[1]: [CMakeFiles/Makefile2:81: CMakeFiles/TECA.dir/all] Error 2 make: *** [Makefile:130: all] Error 2`

I tried module load netcdf-cxx and module load cray-netcdf

I'm just not sure what I need to set NETCDF_DIR to.

Thank you!

burlen commented 4 years ago

One thing that I see in the output you sent are lines like "Cray Programming Environment". That tells me that the compilers were not set to use GCC when you invoked cmake. Here is what you will see on cori when they are set:

-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- The Fortran compiler identification is GNU 8.3.0

I suggest that you start over fresh(i.e. rm -rf the works). With CMake in general it is often easier to start over fresh when you run into trouble because CMake will remember the wrong things. I'd also suggest to review the following link because the details are important. Miss a step and you're likely to have issues.

https://teca.readthedocs.io/en/develop/installation.html#on-a-cray-supercomputer

One minor thing I see our instructions: you can do module load cmake, the default version installed on cori works fine, and that is what I have been using.

I'll leave this issue open for now. Feel free to follow up with questions if it helps.

lpassarella commented 4 years ago

I am still getting the same error

Current branch develop is up to date. [ 98%] Performing configure step for 'TECA' -- The C compiler identification is GNU 8.3.0 -- The CXX compiler identification is GNU 8.3.0 -- The Fortran compiler identification is GNU 8.3.0 -- Cray Programming Environment 2.6.2 C -- Check for working C compiler: /opt/cray/pe/craype/2.6.2/bin/cc -- Check for working C compiler: /opt/cray/pe/craype/2.6.2/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Cray Programming Environment 2.6.2 CXX -- Check for working CXX compiler: /opt/cray/pe/craype/2.6.2/bin/CC -- Check for working CXX compiler: /opt/cray/pe/craype/2.6.2/bin/CC -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Cray Programming Environment 2.6.2 Fortran -- Check for working Fortran compiler: /opt/cray/pe/craype/2.6.2/bin/ftn -- Check for working Fortran compiler: /opt/cray/pe/craype/2.6.2/bin/ftn -- works -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Checking whether /opt/cray/pe/craype/2.6.2/bin/ftn supports Fortran 90 -- Checking whether /opt/cray/pe/craype/2.6.2/bin/ftn supports Fortran 90 -- yes -- Configuring a Release build -- Check for c++ regex support -- Check for c++ regex support -- enabled -- Found MPI_C: /opt/cray/pe/craype/2.6.2/bin/cc (found version "3.1") -- Found MPI_CXX: /opt/cray/pe/craype/2.6.2/bin/CC (found version "3.1") -- Found MPI_Fortran: /opt/cray/pe/craype/2.6.2/bin/ftn (found version "3.1") -- Found MPI: TRUE (found version "3.1")
-- MPI features -- enabled -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") -- NETCDF_LIBRARY-NOTFOUND -- Could NOT find NetCDF (missing: NETCDF_LIBRARIES) CMake Error at CMakeLists.txt:144 (message): NetCDF features -- required but not found. set NETCDF_DIR to enable.

-- Configuring incomplete, errors occurred! See also "/global/project/projectdirs/e3sm/lpass/TECA_superbuild/build/TECA-prefix/src/TECA-build/CMakeFiles/CMakeOutput.log". make[2]: [CMakeFiles/TECA.dir/build.make:117: TECA-prefix/src/TECA-stamp/TECA-configure] Error 1 make[1]: [CMakeFiles/Makefile2:81: CMakeFiles/TECA.dir/all] Error 2 make: *** [Makefile:130: all] Error 2

taobrienlbl commented 4 years ago

Hi Linsey,

It might be useful if we talked briefly about what you’re seeking to do with TECA and E3SM, so that we know how we might best be able help you get up and running.

Would you mind e-mailing me directly at obrienta@iu.edumailto:obrienta@iu.edu?

Best Regards, -Travis-

-- Travis A. O'Brien Pronouns: he/himhttps://www.mypronouns.org/he-him

Assistant Professor Earth and Atmospheric Sciences Indiana University, Bloomington

Visiting Faculty Climate and Ecosystem Sciences Division Lawrence Berkeley Lab

https://earth.indiana.edu/directory/faculty/obrien-travis.html +1 (812) 269-2051

On September 17, 2020 at 2:40:08 PM, Linsey Passarella (notifications@github.commailto:notifications@github.com) wrote:

I am still getting the same error

Current branch develop is up to date. [ 98%] Performing configure step for 'TECA' -- The C compiler identification is GNU 8.3.0 -- The CXX compiler identification is GNU 8.3.0 -- The Fortran compiler identification is GNU 8.3.0 -- Cray Programming Environment 2.6.2 C -- Check for working C compiler: /opt/cray/pe/craype/2.6.2/bin/cc -- Check for working C compiler: /opt/cray/pe/craype/2.6.2/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Cray Programming Environment 2.6.2 CXX -- Check for working CXX compiler: /opt/cray/pe/craype/2.6.2/bin/CC -- Check for working CXX compiler: /opt/cray/pe/craype/2.6.2/bin/CC -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Cray Programming Environment 2.6.2 Fortran -- Check for working Fortran compiler: /opt/cray/pe/craype/2.6.2/bin/ftn -- Check for working Fortran compiler: /opt/cray/pe/craype/2.6.2/bin/ftn -- works -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Checking whether /opt/cray/pe/craype/2.6.2/bin/ftn supports Fortran 90 -- Checking whether /opt/cray/pe/craype/2.6.2/bin/ftn supports Fortran 90 -- yes -- Configuring a Release build -- Check for c++ regex support -- Check for c++ regex support -- enabled -- Found MPI_C: /opt/cray/pe/craype/2.6.2/bin/cc (found version "3.1") -- Found MPI_CXX: /opt/cray/pe/craype/2.6.2/bin/CC (found version "3.1") -- Found MPI_Fortran: /opt/cray/pe/craype/2.6.2/bin/ftn (found version "3.1") -- Found MPI: TRUE (found version "3.1") -- MPI features -- enabled -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") -- NETCDF_LIBRARY-NOTFOUND -- Could NOT find NetCDF (missing: NETCDF_LIBRARIES) CMake Error at CMakeLists.txt:144 (message): NetCDF features -- required but not found. set NETCDF_DIR to enable.

-- Configuring incomplete, errors occurred! See also "/global/project/projectdirs/e3sm/lpass/TECA_superbuild/build/TECA-prefix/src/TECA-build/CMakeFiles/CMakeOutput.log". make[2]: [CMakeFiles/TECA.dir/build.make:117: TECA-prefix/src/TECA-stamp/TECA-configure] Error 1 make[1]: [CMakeFiles/Makefile2:81: CMakeFiles/TECA.dir/all] Error 2 make: *** [Makefile:130: all] Error 2

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/LBL-EESA/TECA/issues/465#issuecomment-694424504, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACDDUFVM3WQ5P2YJPRIPJ6TSGJJYFANCNFSM4RNE7G3Q.

burlen commented 4 years ago

A couple of things in your latest output hint that the instructions are not being followed. I suggest, rm -rf everything, follow each step in the instructions carefully. Don't deviate from the instructions unless you know what you are doing and are prepared to troubleshoot.

https://teca.readthedocs.io/en/develop/installation.html#on-a-cray-supercomputer

In your latest output I see the line :Current branch develop is up to date. This indicates that the build is dirty, you are running on previous build rather than start over from scratch (i.e. rm -rf everything). As I mentioned CMake will retain invalid settings, and it is necessary to rm -rf your previous attempt. An example of an invalid setting that cmake is retaining is evdenced by the line -- Check for working CXX compiler: /opt/cray/pe/craype/2.6.2/bin/CC. This line should report GCC compiler but cmake remembered your last failed attempt using the cray compiler wrappers.

Also, the develop is not the branch that is used by the superbuild by default. If you ran the superbuild following the instructions I linked to you would be on the 3.0.0 release. You must have explicitly overrode the branch on the command line. Providing this type of information is critical if you expect us top be able to help you. The develop branch of the superbuild must be used when building the develop branch of teca.

lpassarella commented 4 years ago

I followed the instructions explicitly and did not deviate from them or use a different branch. I was able to compile on Cori just now by running step 7 "make -j 32 install" in the TECA_superbuild directory and not in the build directory that step 4 has you cd into.

Thanks for your help!

burlen commented 4 years ago

OK, it sounds like you solved the problems. Glad you figured it out.

taobrienlbl commented 4 years ago

I'm glad to hear you managed to get it built -- it can be challenging to build at times (variability on the supercomputing systems doesn't help the matter).

The offer still stands to discuss your particular use case, since it looks like you might be working with the E3SM team, based on the directory names in your log files. I'd like to make sure that you're able to use TECA with E3SM as needed.