I'm trying to understand the size limits a bit better.
The c++ documentation states:
"""
The interface to the C++ CP-SAT solver is implemented through the CpModelBuilder class described in ortools/sat/cp_model.h. This class is just a helper to fill in the cp_model protobuf.
Calling Solve() method will return a CpSolverResponse protobuf that contains the solve status, the values for each variable in the model if solve was successful, and some metrics.
"""
Am I correct in saying the following things?:
- The size limit on protobufs is 2 GB, regardless of what programming language is used.
- Even c++ uses protobufs (as per the documentation above).
- Therefore, even c++ has a limit on maximum model size of 2 GB.
- The reason the python code failed but equivalent c++ code would not fail is to do with the size of the response proto, which because extremely large when calling Validate?
I'm trying to get a more complete understanding of what caused the python to fail, and why equivalent c++ would not fail.
Right now it seems like the proto would still exceed 2GB if validate was called in c++.