Welcome to the new DiscussCESM forum!
We are still working on the website migration, so you may experience downtime during this process.

Existing users, please reset your password before logging in here: https://xenforo.cgd.ucar.edu/cesm/index.php?lost-password/

Undefined symbols cesm2.1.1 on a Mac

I'm attempting to build a cesm2.1.1 case on a 2019 Mac Pro running Catalina with the Intel compiler v19.1.0.166. I added my machine specfics to config_machines.xml and config_compilers.xml. The case is:

create_newcase --case cam6_fv2deg --res f19_f19_mg17 --compset F2000climo --machine tundra --run-unsupported

I didn't add any source code changes to SourceMods, nor any changes to the user_nl_xxx files.

All of the individual model components get built successfully, but then I get undefined symbols in the link step. The first of the errors are surprising to me as they are seemingly benign pieces of code from the CLM:

Undefined symbols for architecture x86_64:
"_clm_varorb_mp_eccen_", referenced from:
_lnd_comp_mct_mp_lnd_run_mct_ in libclm.a(lnd_comp_mct.o)
_lnd_comp_mct_mp_lnd_init_mct_ in libclm.a(lnd_comp_mct.o)
_clm_initializemod_mp_initialize2_ in libclm.a(clm_initializeMod.o)
"_clm_varorb_mp_lambm0_", referenced from:
_lnd_comp_mct_mp_lnd_run_mct_ in libclm.a(lnd_comp_mct.o)
_lnd_comp_mct_mp_lnd_init_mct_ in libclm.a(lnd_comp_mct.o)
_clm_initializemod_mp_initialize2_ in libclm.a(clm_initializeMod.o)
"_clm_varorb_mp_mvelpp_", referenced from:
_lnd_comp_mct_mp_lnd_run_mct_ in libclm.a(lnd_comp_mct.o)
_lnd_comp_mct_mp_lnd_init_mct_ in libclm.a(lnd_comp_mct.o)
_clm_initializemod_mp_initialize2_ in libclm.a(clm_initializeMod.o)
"_clm_varorb_mp_obliqr_", referenced from:
_lnd_comp_mct_mp_lnd_run_mct_ in libclm.a(lnd_comp_mct.o)
_lnd_comp_mct_mp_lnd_init_mct_ in libclm.a(lnd_comp_mct.o)
_clm_driver_mp_clm_drv_ in libclm.a(clm_driver.o)
_clm_initializemod_mp_initialize2_ in libclm.a(clm_initializeMod.o)

Anybody else ever run across this?

Thanks,
Mark Branson

P.S. I had to add a .txt extension to some of the attached files to allow them to be uploaded.
 

Attachments

  • config_compilers.xml.txt
    42.5 KB · Views: 2
  • config_machines.xml.txt
    102.4 KB · Views: 3
  • cesm.bldlog.210728-151202.txt
    136 KB · Views: 2
  • csm_share.bldlog.210728-151202.txt
    150.1 KB · Views: 0
  • lnd.bldlog.210728-151202.txt
    646 KB · Views: 2
  • mct.bldlog.210728-151202.txt
    58.2 KB · Views: 0
  • pio.bldlog.210728-151202.txt
    54.5 KB · Views: 1
  • atm.bldlog.210728-151202.txt.gz
    32.3 KB · Views: 1

dobbins

Brian Dobbins
CSEG and Liaisons
Staff member
Hi Mark,

That's a new one to me, and I don't have any solutions to that exact problem, but may have a work-around. Are you familiar with containers (eg, Docker)?

They're basically pre-packaged environments, so we've recently been building CESM containers that people can just download and use - no building of prerequisites like NetCDF or PNetCDF, no installing compilers, and no configuring XML files. Plus, they work across platforms - you can run the same image on a Windows system, a Linux system,.. or, a Mac one. So while I haven't wrestled through installing CESM 2.1 on my Mac, I have used one of our containers extensively on it, and it works fine.

Technically, these are still in a 'preview' mode, and will probably have an official release when CESM 2.3 is out. And, since it's a preview, we only have a CESM-2.2 version... but I can probably get you a 2.1 version quick, or show you how to use the 2.2 version with CESM 2.1 pretty easily. If you're a bit old school like me, you can use it via the terminal, or if you prefer Jupyter environments, we've got a version with that, too.

If you want a little more information, here's a document with some info on the CESM-Lab-2.2 version (CESM+Jupyter Lab). The straight-up CESM is slightly easier to use, since you don't need to run a browser and forward ports, but if you think this would work for you as a solution, let's follow up with email and I'll get you started, since your case is newer (older CESM version, and newer Intel compilers, since the latest are free to use whereas yours is not!).

CESM-Lab Doc: Instructions for using CESM-Lab (Container)
Timed/Tested Configs: Containerized CESM - Tested Configs

Note that the tested configs here are using the default GNU version, and Intel runs a little faster -- when we were putting this together, we were still sorting out what was allowed in terms of integrating the Intel compilers, so they're not included. For a 2-degree CAM6 run, it probably matters, but it's fairly slow on systems without a lot of cores, obviously!

Let me know if you want to try it out and how I can help. I'll ping around for others who may know the current issue, too.

Cheers,
- Brian
 
Hi Brian.

Brilliant! This sounds like the perfect solution. And I'm fine with it being cesm2.2 -- I have no urgent need to backtrack to cesm2.1. Also, I am indeed a bit old-school myself (never have used Jupyter Lab) so if you can provide any guidance on how to install and use it without Jupyter that would be fantastic.

Thanks so much!
Mark (mark at atmos dot colostate dot edu)
 

dobbins

Brian Dobbins
CSEG and Liaisons
Staff member
Hi Mark,

Most of that documentation isn't written up yet (this is a good indicator I should do it!). I'm in meetings all day today, but how about we do two things - one, I'll write up some documentation and send it to you, and two, I'll contact you via email, and we can follow up with a Zoom or Hangout meeting, just to ensure you're up and running fine? That would help me immensely, too, as it would show areas the to-be-written documentation is weak, and get feedback. ;-)

I'll send you an email later today.

Thanks!
- Brian
 
Top