[SCIP] Problem compiling ParaSCIP from scipoptsuite-7.0.0

Yuji Shinano shinano at zib.de
Mon Jun 1 16:05:44 CEST 2020


Hi Sergey,

Sorry for this. We know it happens. For a while, could you apply attached patch?
It should work.

Best regards,
Yuji


  On 2020/06/01 12:05, Sergey Smirnov wrote:
> Hello,
>
> I’ve downloaded scipoptsuite-7.0.0, built scip successfully, but when I tried to build UG with MPI, it failed with the following compilation error:
> *vagrant at ubuntu-bionic*:*~/scipoptsuite-7.0.0*$ make ug COMM=mpi
>
> ...
>
> ** Building UG executable.
> make[2]: Entering directory '/home/vagrant/scipoptsuite-7.0.0/ug'
> MPI compiler used : /usr/bin/mpicxx
> -> compiling obj/static/O.linux.x86_64.gnu.opt/mpi/ug_scip/scipParaInstance.o
> In file included from */home/vagrant/scipoptsuite-7.0.0/scip/src/scip/scip.h:35:0*,
>                  from */home/vagrant/scipoptsuite-7.0.0/scip/src/scip/scipdefplugins.h:27*,
>                  from *src/ug_scip/scipParaInstance.cpp:40*:
> *src/ug_scip/scipParaInstance.cpp:* In member function ‘*void ParaSCIP::ScipParaInstance::createProblem(SCIP*, int, bool, bool, ParaSCIP::ScipDiffParamSet*, ParaSCIP::ScipDiffParamSet*, char*, char*)*’:
> *src/ug_scip/scipParaInstance.cpp:1608:53:* *error: *‘*tempScip2*’ was not declared in this scope
>           SCIP_CALL_ABORT( SCIPcopyBenders(tempScip, *t*empScip2, NULL, TRUE, &valid) );
> *^*
> */home/vagrant/scipoptsuite-7.0.0/scip/src/scip/def.h:340:44:* *note: *in definition of macro ‘*SCIP_CALL_ABORT*’
>                            if( (_restat_ = (*x*)) != SCIP_OKAY ) \
> *^*
> *src/ug_scip/scipParaInstance.cpp:1608:53:* *note: *suggested alternative: ‘*tempScip*’
>           SCIP_CALL_ABORT( SCIPcopyBenders(tempScip, *t*empScip2, NULL, TRUE, &valid) );
> *^*
> */home/vagrant/scipoptsuite-7.0.0/scip/src/scip/def.h:340:44:* *note: *in definition of macro ‘*SCIP_CALL_ABORT*’
>                            if( (_restat_ = (*x*)) != SCIP_OKAY ) \
> *^*
> *src/ug_scip/scipParaInstance.cpp:1617:43:* *error: *‘*tempScip2*’ was not declared in this scope
>           SCIP_CALL_ABORT( SCIPcopyBenders(*t*empScip2, scip, NULL, TRUE, &valid) );
> *^*
> */home/vagrant/scipoptsuite-7.0.0/scip/src/scip/def.h:340:44:* *note: *in definition of macro ‘*SCIP_CALL_ABORT*’
>                            if( (_restat_ = (*x*)) != SCIP_OKAY ) \
> *^*
> *src/ug_scip/scipParaInstance.cpp:1617:43:* *note: *suggested alternative: ‘*tempScip*’
>           SCIP_CALL_ABORT( SCIPcopyBenders(*t*empScip2, scip, NULL, TRUE, &valid) );
> *^*
> */home/vagrant/scipoptsuite-7.0.0/scip/src/scip/def.h:340:44:* *note: *in definition of macro ‘*SCIP_CALL_ABORT*’
>                            if( (_restat_ = (*x*)) != SCIP_OKAY ) \
> *^*
> Makefile:435: recipe for target 'obj/static/O.linux.x86_64.gnu.opt/mpi/ug_scip/scipParaInstance.o' failed
>
>
> It seems that *tempScip2* really is not defined. There is similar code (without such error) in some of the case clauses earlier in the function. How to fix it correctly?
>
>
> Regards,
> Sergey
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-------------- next part --------------
diff --git a/src/ug_scip/scipParaInstance.cpp b/src/ug_scip/scipParaInstance.cpp
index 41697a9..03125cb 100644
--- a/src/ug_scip/scipParaInstance.cpp
+++ b/src/ug_scip/scipParaInstance.cpp
@@ -1599,25 +1599,6 @@ ScipParaInstance::createProblem(
          }
       }
 
-#if SCIP_APIVERSION > 39
-      if( success )
-      {
-         SCIP_Bool valid;
-
-         // copy the Benders' decomposition plugins explicitly, because it requires the variable mapping hash map
-         SCIP_CALL_ABORT( SCIPcopyBenders(tempScip, tempScip2, NULL, TRUE, &valid) );
-      }
-
-
-      if( success )
-      {
-         SCIP_Bool valid;
-
-         //  copy the Benders' decomposition plugins explicitly, because it requires the variable mapping hash map
-         SCIP_CALL_ABORT( SCIPcopyBenders(tempScip2, scip, NULL, TRUE, &valid) );
-      }
-#endif
-
       nVars = SCIPgetNVars(tempScip);
       varIndexRange = nVars;
       int n = SCIPgetNVars(scip);


More information about the Scip mailing list