Skip to content

Reduce parameter sizes by using cs3r instead of cs4r - #2495

Open
simonkrogmann wants to merge 1 commit into
remindmodel:developfrom
simonkrogmann:small-fullgms
Open

simonkrogmann wants to merge 1 commit into
remindmodel:developfrom
simonkrogmann:small-fullgms

Conversation

@simonkrogmann

@simonkrogmann simonkrogmann commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Purpose of this PR

cs4r is more storage efficient for sparse data, but less so for dense data. I changed some of our input files from cs4r to cs3r where it is appropriate.

mrremind PR: pik-piam/mrremind#855

Since they are pasted directly into full.gms this has the following effects:

  • full.gms from 289MB to 215MB
  • input data files smaller (no savings for tgz files, they are compressed anyways)
  • Remind runs start slightly faster, prepare() from 40s to 29s on my laptop.
  • better debugging of full.gms in text editors/IDEs (maybe less memory-related crashes)

There might be more files where changing to cs3r is beneficial but I went for the largest savings.

I displayed the parameters after reading and they are identical. I will build new input data before merging this.

Type of change

Indicate the items relevant for your PR by replacing ◻️ with ☑️.
Do not delete any lines. This makes it easier to understand which areas are affected by your changes and which are not.

Parts concerned

  • ☑️ GAMS Code
  • ◻️ R-scripts
  • ◻️ Documentation (GAMS incode documentation, comments, tutorials)
  • ☑️ Input data / CES parameters
  • ◻️ Tests, CI/CD (continuous integration/deployment)
  • ◻️ Configuration (switches in main.gms, default.cfg, and scenario_config*.csv files)
  • ◻️ Other (please give a description)

Impact

  • ◻️ Bug fix
  • ☑️ Refactoring
  • ◻️ New feature
  • ◻️ Change of parameter values or input data (including CES parameters)
  • ◻️ Minor change (default scenarios show only small differences)
  • ◻️ Fundamental change of results of default scenarios

Checklist

Do not delete any line. Leave unfinished elements unchecked so others know how far along you are.
In the end all checkboxes must be ticked before you can merge
.

  • I executed the automated model tests (make test) after my final commit and all tests pass (FAIL 0)
  • I adjusted the reporting in remind2 if and where it was needed
  • I adjusted the madrat packages (mrremind and other packages involved) for input data generation if and where it was needed
  • My code follows the coding etiquette
  • I explained my changes within the PR, particularly in hard-to-understand areas
  • I checked that the in-code documentation is up-to-date
  • I adjusted forbiddenColumnNames in readCheckScenarioConfig.R in case the PR leads to deprecated switches
  • I updated the CHANGELOG.md correctly (added, changed, fixed, removed, input data/calibration)

Further information (optional)

@simonkrogmann
simonkrogmann marked this pull request as draft October 9, 2026 14:38
@simonkrogmann
simonkrogmann marked this pull request as ready for review October 9, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant