the function declarations for the synchronization store
Definition in file syncstore.h.
#include "scip/def.h"#include "scip/type_syncstore.h"#include "scip/type_scip.h"#include "scip/type_retcode.h"Go to the source code of this file.
| SCIP_RETCODE SCIPsyncstoreCreate | ( | SCIP_SYNCSTORE ** | syncstore | ) |
creates and captures a new synchronization store
| syncstore | pointer to return the created synchronization store |
Definition at line 56 of file syncstore.c.
References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_PARA_DETERMINISTIC, SCIPdebugMessage, and SCIPtpiInitLock().
Referenced by SCIPconstructSyncstore(), and SCIPcreate().
| SCIP_RETCODE SCIPsyncstoreRelease | ( | SCIP_SYNCSTORE ** | syncstore | ) |
releases a synchronization store
| syncstore | pointer to the synchronization store |
Definition at line 77 of file syncstore.c.
References BMSfreeMemory, NULL, SCIP_CALL, SCIP_OKAY, SCIPsyncstoreExit(), SCIPtpiAcquireLock(), SCIPtpiDestroyLock(), and SCIPtpiReleaseLock().
Referenced by doCopy(), SCIPcopyOrigConsCompression(), SCIPfree(), and SCIPfreeSyncstore().
| SCIP_RETCODE SCIPsyncstoreCapture | ( | SCIP_SYNCSTORE * | syncstore | ) |
captures a synchronization store
| syncstore | the synchronization store |
Definition at line 111 of file syncstore.c.
References SCIP_SyncStore::lock, SCIP_SyncStore::nuses, SCIP_CALL, SCIP_OKAY, SCIPtpiAcquireLock(), and SCIPtpiReleaseLock().
Referenced by doCopy(), and SCIPcopyOrigConsCompression().
| SCIP_RETCODE SCIPsyncstoreInit | ( | SCIP * | scip | ) |
initialize the syncstore for the given SCIP instance
| scip | SCIP main datastructure |
Definition at line 125 of file syncstore.c.
References FALSE, getNSyncdata(), SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, SCIP_SyncStore::mainscip, SCIP_SyncStore::maxnsols, SCIP_SyncStore::maxnsyncdelay, SCIP_SyncStore::minsyncdelay, SCIP_SyncStore::mode, SCIP_SyncStore::ninitvars, SCIP_SyncStore::nsolvers, SCIP_SyncStore::nsyncdata, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PARA_DETERMINISTIC, SCIPallocBlockMemoryArray, SCIPautoselectDisps(), SCIPboundstoreCreate(), SCIPgetIntParam(), SCIPgetNConcurrentSolvers(), SCIPgetNNZs(), SCIPgetNVars(), SCIPgetRealParam(), SCIPgetSyncstore(), SCIPtpiInit(), SCIPtpiInitCondition(), SCIPtpiInitLock(), SCIP_SyncStore::stopped, SCIP_SyncStore::syncdata, SCIP_SyncStore::syncfreqinit, SCIP_SyncStore::syncfreqmax, and TRUE.
Referenced by SCIPsolveParallel().
| SCIP_RETCODE SCIPsyncstoreExit | ( | SCIP_SYNCSTORE * | syncstore | ) |
deinitializes the synchronization store
| syncstore | the synchronization store |
Definition at line 189 of file syncstore.c.
References FALSE, SCIP_SyncStore::initialized, SCIP_SyncStore::mainscip, SCIP_SyncStore::maxnsols, SCIP_SyncStore::ninitvars, SCIP_SyncStore::nsyncdata, NULL, SCIP_CALL, SCIP_OKAY, SCIPboundstoreFree(), SCIPfreeBlockMemoryArray, SCIPtpiDestroyCondition(), SCIPtpiDestroyLock(), SCIPtpiExit(), SCIP_SyncStore::stopped, and SCIP_SyncStore::syncdata.
Referenced by SCIPfreeProb(), and SCIPsyncstoreRelease().
| SCIP_Bool SCIPsyncstoreSolveIsStopped | ( | SCIP_SYNCSTORE * | syncstore | ) |
checks whether the solve-is-stopped flag in the syncstore has been set by any thread
| syncstore | the synchronization store |
Definition at line 226 of file syncstore.c.
References SCIP_SyncStore::lock, SCIP_Bool, SCIP_CALL_ABORT, SCIPtpiAcquireLock(), SCIPtpiReleaseLock(), and SCIP_SyncStore::stopped.
Referenced by SCIPsolveIsStopped(), and SCIPsyncstoreStartSync().
| void SCIPsyncstoreSetSolveIsStopped | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_Bool | stopped | ||
| ) |
sets the solve-is-stopped flag in the syncstore so that subsequent calls to SCIPsyncstoreSolveIsStopped will return the given value in any thread
| syncstore | the synchronization store |
| stopped | flag if the solve is stopped |
Definition at line 244 of file syncstore.c.
References SCIP_SyncStore::lock, SCIP_CALL_ABORT, SCIPtpiAcquireLock(), SCIPtpiReleaseLock(), and SCIP_SyncStore::stopped.
Referenced by SCIPsolveConcurrent(), SCIPsolveParallel(), and SCIPsyncstoreFinishSync().
| SCIP_Real SCIPsyncstoreGetLastUpperbound | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the upperbound from the last synchronization
| syncstore | the synchronization store |
Definition at line 257 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, SCIP_SyncStore::mainscip, NULL, and SCIPinfinity().
Referenced by SCIP_DECL_DISPOUTPUT(), and SCIPgetConcurrentPrimalbound().
| SCIP_Real SCIPsyncstoreGetLastLowerbound | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the lowerbound from the last synchronization
| syncstore | the synchronization store |
Definition at line 268 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, SCIP_SyncStore::mainscip, NULL, and SCIPinfinity().
Referenced by SCIPgetConcurrentDualbound().
| int SCIPsyncstoreGetLastNSols | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the number of solutions from the last synchronization
| syncstore | the synchronization store |
Definition at line 279 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, and NULL.
Referenced by SCIP_DECL_DISPOUTPUT().
| int SCIPsyncstoreGetLastNBounds | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the number of boundchanges from the last synchronization
| syncstore | the synchronization store |
Definition at line 290 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, NULL, and SCIPboundstoreGetNChgs().
| SCIP_Longint SCIPsyncstoreGetLastMemTotal | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets total memory used by all solvers from the last synchronization
| syncstore | the synchronization store |
Definition at line 301 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, and NULL.
Referenced by SCIP_DECL_DISPOUTPUT().
| SCIP_Real SCIPsyncstoreGetLastSyncfreq | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the synchronization frequency from the last synchronization
| syncstore | the synchronization store |
Definition at line 312 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, and NULL.
| SCIP_SYNCDATA* SCIPsyncstoreGetSyncdata | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_Longint | syncnum | ||
| ) |
get synchronization data with given number. It is the responsibility of the caller to only ask for a synchronization number that still exists.
get synchronization data with given number. It is the responsibility of the caller to only ask for a synchronization number that still exists, which is checked with an assert in debug mode.
| syncstore | the synchronization store |
| syncnum | the number of the synchronization to start, which must be increasing between calls of the same thread |
Definition at line 325 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::nsyncdata, NULL, and SCIP_SyncStore::syncdata.
Referenced by SCIPconcsolverSync().
| SCIP_SYNCDATA* SCIPsyncstoreGetNextSyncdata | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_SYNCDATA * | syncdata, | ||
| SCIP_Real | syncfreq, | ||
| SCIP_Longint | writenum, | ||
| SCIP_Real * | delay | ||
| ) |
get the next synchronization data that should be read and adjust the delay. Returns NULL if no more data should be read due to minimum delay
| syncstore | the synchronization store |
| syncdata | the synchronization data |
| syncfreq | the current synchronization frequency |
| writenum | number of synchronizations the solver has written to |
| delay | pointer holding the current synchronization delay |
Definition at line 346 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::maxnsyncdelay, SCIP_SyncStore::nsyncdata, NULL, SCIP_Longint, SCIP_Real, SCIP_STATUS_UNKNOWN, and SCIP_SyncStore::syncdata.
Referenced by SCIPconcsolverSync().
| SCIP_RETCODE SCIPsyncstoreEnsureAllSynced | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_SYNCDATA * | syncdata | ||
| ) |
ensures that the given synchronization data has been written by all solvers upon return of this function and blocks the caller if necessary.
| syncstore | the synchronization store |
| syncdata | the synchronization data |
Definition at line 394 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::nsolvers, NULL, SCIP_CALL, SCIP_OKAY, SCIPtpiAcquireLock(), SCIPtpiReleaseLock(), and SCIPtpiWaitCondition().
Referenced by SCIPconcsolverSync().
| SCIP_RETCODE SCIPsyncstoreStartSync | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_Longint | syncnum, | ||
| SCIP_SYNCDATA ** | syncdata | ||
| ) |
Start synchronization for the given concurrent solver. Needs to be followed by a call to SCIPsyncstoreFinishSync if the syncdata that is returned is not NULL
| syncstore | the synchronization store |
| syncnum | the number of the synchronization to start, which must be increasing between calls of the same thread |
| syncdata | pointer to return the synchronization data |
Definition at line 423 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::mainscip, SCIP_SyncStore::nsyncdata, NULL, SCIP_CALL, SCIP_OKAY, SCIP_STATUS_UNKNOWN, SCIPboundstoreClear(), SCIPgetMemTotal(), SCIPinfinity(), SCIPsyncstoreSolveIsStopped(), SCIPtpiAcquireLock(), and SCIP_SyncStore::syncdata.
Referenced by SCIPconcsolverSync().
| SCIP_RETCODE SCIPsyncstoreFinishSync | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_SYNCDATA ** | syncdata | ||
| ) |
finishes synchronization for the synchronization data
| syncstore | the synchronization store |
| syncdata | the synchronization data |
Definition at line 466 of file syncstore.c.
References FALSE, SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, SCIP_SyncStore::mainscip, SCIP_SyncStore::nsolvers, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_STATUS_UNKNOWN, SCIP_VERBLEVEL_HIGH, SCIPprintDisplayLine(), SCIPsyncstoreSetSolveIsStopped(), SCIPtpiBroadcastCondition(), SCIPtpiReleaseLock(), and TRUE.
Referenced by SCIPconcsolverSync().
| SCIP_STATUS SCIPsyncdataGetStatus | ( | SCIP_SYNCDATA * | syncdata | ) |
gets status in synchronization data
| syncdata | the synchronization data |
Definition at line 504 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE(), and SCIPconcsolverSync().
| int SCIPsyncstoreGetWinner | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the solver that had the best status, or -1 if solve is not stopped yet
| syncstore | the synchronization store |
Definition at line 514 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, NULL, and SCIP_STATUS_UNKNOWN.
Referenced by printConcsolverStatistics(), and SCIPsolveConcurrent().
| int SCIPsyncdataGetNSynced | ( | SCIP_SYNCDATA * | syncdata | ) |
how many solvers have already finished synchronizing on this sychronization data
| syncdata | the synchronization data |
Definition at line 528 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
| int SCIPsyncstoreGetNSolvers | ( | SCIP_SYNCSTORE * | syncstore | ) |
how many solvers have are running concurrently
| syncstore | the synchronization store |
Definition at line 538 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::nsolvers, and NULL.
Referenced by SCIPconcsolverSync(), and SCIPsolveConcurrent().
| SCIP_Longint SCIPsyncdataGetMemTotal | ( | SCIP_SYNCDATA * | syncdata | ) |
read amount of memory used from synchronization data
read amount total memory used from synchronization data
| syncdata | the synchronization data |
Definition at line 550 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverGetMemTotal().
| SCIP_Real SCIPsyncdataGetSyncFreq | ( | SCIP_SYNCDATA * | syncdata | ) |
read the synchronization frequency from a synchronization data
| syncdata | the synchronization data |
Definition at line 560 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
| SCIP_Real SCIPsyncdataGetUpperbound | ( | SCIP_SYNCDATA * | syncdata | ) |
read the upperbound stored in a synchronization data
| syncdata | the synchronization data |
Definition at line 570 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
| SCIP_Real SCIPsyncdataGetLowerbound | ( | SCIP_SYNCDATA * | syncdata | ) |
read the lowerbound stored in a synchronization data
| syncdata | the synchronization data |
Definition at line 580 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
| void SCIPsyncdataGetSolutions | ( | SCIP_SYNCDATA * | syncdata, |
| SCIP_Real *** | solvalues, | ||
| int ** | solowner, | ||
| int * | nsols | ||
| ) |
read the solutions stored in a synchronization data
| syncdata | the synchronization data |
| solvalues | array of buffers containing the solution values |
| solowner | array of ownerids of solutions |
| nsols | pointer to return number of solutions |
Definition at line 590 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCREAD().
| SCIP_BOUNDSTORE* SCIPsyncdataGetBoundChgs | ( | SCIP_SYNCDATA * | syncdata | ) |
read bound changes stored in the synchronization data
| syncdata | the synchronization data |
Definition at line 608 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCREAD(), and SCIPconcsolverSync().
| void SCIPsyncdataSetSyncFreq | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_SYNCDATA * | syncdata, | ||
| SCIP_Real | syncfreq | ||
| ) |
write the synchronization frequency to a synchronization data
| syncstore | the synchronization store |
| syncdata | the synchronization data |
| syncfreq | the synchronization frequency |
Definition at line 618 of file syncstore.c.
References SCIP_SyncStore::initialized, MIN, NULL, and SCIP_SyncStore::syncfreqmax.
Referenced by SCIPconcsolverSync().
| void SCIPsyncdataSetStatus | ( | SCIP_SYNCDATA * | syncdata, |
| SCIP_STATUS | status, | ||
| int | solverid | ||
| ) |
set status in the synchronization data
| syncdata | the synchronization data the upperbound should be added to |
| status | the status |
| solverid | identifier of te solver that has this status |
Definition at line 632 of file syncstore.c.
References NULL, and SCIP_STATUS_OPTIMAL.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
| void SCIPsyncdataAddMemTotal | ( | SCIP_SYNCDATA * | syncdata, |
| SCIP_Longint | memtotal | ||
| ) |
adds memory used to the synchronization data
| syncdata | the synchronization data the solution should be added to |
| memtotal | the number of bytes used |
Definition at line 664 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
| void SCIPsyncdataSetUpperbound | ( | SCIP_SYNCDATA * | syncdata, |
| SCIP_Real | upperbound | ||
| ) |
set upperbound to the synchronization data
| syncdata | the synchronization data the upperbound should be added to |
| upperbound | the upperbound |
Definition at line 675 of file syncstore.c.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
| void SCIPsyncdataSetLowerbound | ( | SCIP_SYNCDATA * | syncdata, |
| SCIP_Real | lowerbound | ||
| ) |
set lowerbound to the synchronization data
| syncdata | the synchronization data the lowerbound should be added to |
| lowerbound | the lowerbound |
Definition at line 686 of file syncstore.c.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
| void SCIPsyncdataGetSolutionBuffer | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_SYNCDATA * | syncdata, | ||
| SCIP_Real | solobj, | ||
| int | ownerid, | ||
| SCIP_Real ** | buffer | ||
| ) |
gives a buffer to store the solution values, or NULL if solution should not be stored because there are already better solutions stored.
| syncstore | the synchronization store |
| syncdata | the synchronization data the solution should be added to |
| solobj | the objective value of the solution |
| ownerid | an identifier for the owner of the solution, e.g. the thread number |
| buffer | pointer to return a buffer for the solution values, which must be set if the buffer is not NULL |
Definition at line 699 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::maxnsols, NULL, and SCIPswapPointers().
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
| SCIP_RETCODE SCIPsyncdataAddBoundChanges | ( | SCIP_SYNCSTORE * | syncstore, |
| SCIP_SYNCDATA * | syncdata, | ||
| SCIP_BOUNDSTORE * | boundstore | ||
| ) |
adds bound changes to the synchronization data
| syncstore | the synchronization store |
| syncdata | the synchronization data |
| boundstore | bound store containing the bounds to add |
Definition at line 758 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::mainscip, NULL, SCIP_CALL, SCIP_OKAY, and SCIPboundstoreMerge().
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
| SCIP_Bool SCIPsyncstoreIsInitialized | ( | SCIP_SYNCSTORE * | syncstore | ) |
is synchronization store initialized
| syncstore | the synchronization store |
Definition at line 775 of file syncstore.c.
References SCIP_SyncStore::initialized, and NULL.
Referenced by printConcsolverStatistics(), SCIP_DECL_EVENTINIT(), SCIPdispAutoActivate(), SCIPfreeProb(), and SCIPsolveConcurrent().
| SCIP_PARALLELMODE SCIPsyncstoreGetMode | ( | SCIP_SYNCSTORE * | syncstore | ) |
returns the mode of the synchronization store
| syncstore | the synchronization store |
Definition at line 785 of file syncstore.c.
References SCIP_SyncStore::mode, and NULL.