5 Common issues you may encounter and troubleshooting tips - jayfuhrman/gcam-hpc-starterpack GitHub Wiki

All input files read in successfully before a fatal java error

As of GCAM 5.3, the climate model is called AFTER the GCAM has run through all model periods. However this causes a conflict when the "hector" climate xml file is read in. Comment out or remove "climate".xml from your configuration

Errors related to querying output data

If you get errors similar to the following in your slurm-nnnnnnn.out file when the model finishes and the automated querying process starts:

org.basex.core.BaseXException: Database 'database_basexdb' was not found. at org.basex.core.Command.execute(Command.java:94)

This is almost always a filepath issue. Make sure that all relative filepaths are set correctly, including in the configuration xml file that you are using. In the default "configuration_ref.xml" file (but not the configuration_empty_scenario_components.xml provided for you) there is a line specifying where the multi-GB database containing ALL results from your scenario run will be written:

<Value write-output="1" append-scenario-name="0" name="xmldb-location">../output/database_basexdb</Value>

This works well when we are running serial scenarios on a PC, but in our setup we want each scenario database to be contained in its respective exe_n directory, where we can then automatically pull only the data that we need out into csv files for further processing. Change this line as follows so that the query files provided (and for which a python script is also provided to automate the creation of new queries), can find the database to pull data from:

<Value write-output="1" append-scenario-name="0" name="xmldb-location">./db/database_basexdb</Value>

Recompiling GCAM after Rivanna maintenance

From time to time the UVA research computing staff make updates to rivanna that will require you to rebuild/recompile GCAM to maintain the most up-to-date library paths. As an HPC user, you will get an email notification before and after maintenance is performed, as well as a summary of updates made. If you do not rebuild your code after maintenance, GCAM may error out when you try to run it.

Here, a "rebuild_gcam" shell script is provided that will automate this process for you (it may also be useful if and when you begin making updates to the actual C++ source code). Note that the provided makescript.sh will also eventually recompile your code. But it will first overwrite your existing GCAM directory (and delete any files you may have in it!!) It will also re-run the GCAM data system's creation of all default input files, which takes 15+ minutes and is unnecessary if all you need to do is rebuild.

Therefore, use rebuild_gcam if all you need to do is recompile and not start from scratch.

To run this script:

cd [your GCAM working directory]

./rebuild_gcam.sh

This should compile for ~15-20 minutes. When its finished, you should see that exe/gcam.exe has a new timestamp and "BUILD COMPLETE" will print in your terminal window

⚠️ **GitHub.com Fallback** ⚠️