Detailed Description
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.
Function Documentation
◆ SCIPsyncstoreCreate()
SCIP_RETCODE SCIPsyncstoreCreate | ( | SCIP_SYNCSTORE ** | syncstore | ) |
creates and captures a new synchronization store
- Parameters
-
syncstore pointer to return the created synchronization store
Definition at line 67 of file syncstore.c.
References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_PARA_DETERMINISTIC, SCIPdebugMessage, and SCIPtpiInitLock().
Referenced by doScipCreate(), and SCIPconstructSyncstore().
◆ SCIPsyncstoreRelease()
SCIP_RETCODE SCIPsyncstoreRelease | ( | SCIP_SYNCSTORE ** | syncstore | ) |
releases a synchronization store
- Parameters
-
syncstore pointer to the synchronization store
Definition at line 89 of file syncstore.c.
References BMSfreeMemory, NULL, SCIP_CALL, SCIP_OKAY, SCIPsyncstoreExit(), SCIPtpiAcquireLock(), SCIPtpiDestroyLock(), and SCIPtpiReleaseLock().
Referenced by doCopy(), SCIPcopyOrigConsCompression(), SCIPfree(), and SCIPfreeSyncstore().
◆ SCIPsyncstoreCapture()
SCIP_RETCODE SCIPsyncstoreCapture | ( | SCIP_SYNCSTORE * | syncstore | ) |
captures a synchronization store
- Parameters
-
syncstore the synchronization store
Definition at line 124 of file syncstore.c.
References SCIP_SyncStore::lock, SCIP_SyncStore::nuses, SCIP_CALL, SCIP_OKAY, SCIPtpiAcquireLock(), and SCIPtpiReleaseLock().
Referenced by doCopy(), and SCIPcopyOrigConsCompression().
◆ SCIPsyncstoreInit()
SCIP_RETCODE SCIPsyncstoreInit | ( | SCIP * | scip | ) |
initialize the syncstore for the given SCIP instance
- Parameters
-
scip SCIP main datastructure
Definition at line 138 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 SCIPsolveConcurrent().
◆ SCIPsyncstoreExit()
SCIP_RETCODE SCIPsyncstoreExit | ( | SCIP_SYNCSTORE * | syncstore | ) |
deinitializes the synchronization store
- Parameters
-
syncstore the synchronization store
Definition at line 202 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().
◆ SCIPsyncstoreSolveIsStopped()
SCIP_Bool SCIPsyncstoreSolveIsStopped | ( | SCIP_SYNCSTORE * | syncstore | ) |
checks whether the solve-is-stopped flag in the syncstore has been set by any thread
- Parameters
-
syncstore the synchronization store
Definition at line 239 of file syncstore.c.
References SCIP_SyncStore::lock, SCIP_Bool, SCIP_CALL_ABORT, SCIPtpiAcquireLock(), SCIPtpiReleaseLock(), and SCIP_SyncStore::stopped.
Referenced by SCIPsolveIsStopped(), and SCIPsyncstoreStartSync().
◆ SCIPsyncstoreSetSolveIsStopped()
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
- Parameters
-
syncstore the synchronization store stopped flag if the solve is stopped
Definition at line 257 of file syncstore.c.
References SCIP_SyncStore::lock, SCIP_CALL_ABORT, SCIPtpiAcquireLock(), SCIPtpiReleaseLock(), and SCIP_SyncStore::stopped.
Referenced by SCIPconcurrentSolve(), SCIPsolveConcurrent(), and SCIPsyncstoreFinishSync().
◆ SCIPsyncstoreGetLastUpperbound()
SCIP_Real SCIPsyncstoreGetLastUpperbound | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the upperbound from the last synchronization
- Parameters
-
syncstore the synchronization store
Definition at line 270 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, SCIP_SyncStore::mainscip, NULL, and SCIPinfinity().
Referenced by SCIP_DECL_DISPOUTPUT(), and SCIPgetConcurrentPrimalbound().
◆ SCIPsyncstoreGetLastLowerbound()
SCIP_Real SCIPsyncstoreGetLastLowerbound | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the lowerbound from the last synchronization
- Parameters
-
syncstore the synchronization store
Definition at line 281 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, SCIP_SyncStore::mainscip, NULL, and SCIPinfinity().
Referenced by SCIPgetConcurrentDualbound().
◆ SCIPsyncstoreGetLastNSols()
int SCIPsyncstoreGetLastNSols | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the number of solutions from the last synchronization
- Parameters
-
syncstore the synchronization store
Definition at line 292 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, and NULL.
Referenced by SCIP_DECL_DISPOUTPUT().
◆ SCIPsyncstoreGetLastNBounds()
int SCIPsyncstoreGetLastNBounds | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the number of boundchanges from the last synchronization
- Parameters
-
syncstore the synchronization store
Definition at line 303 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, NULL, and SCIPboundstoreGetNChgs().
◆ SCIPsyncstoreGetLastMemTotal()
SCIP_Longint SCIPsyncstoreGetLastMemTotal | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets total memory used by all solvers from the last synchronization
- Parameters
-
syncstore the synchronization store
Definition at line 314 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, and NULL.
Referenced by SCIP_DECL_DISPOUTPUT().
◆ SCIPsyncstoreGetLastSyncfreq()
SCIP_Real SCIPsyncstoreGetLastSyncfreq | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the synchronization frequency from the last synchronization
- Parameters
-
syncstore the synchronization store
Definition at line 325 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, and NULL.
◆ SCIPsyncstoreGetSyncdata()
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.
- Parameters
-
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 338 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::nsyncdata, NULL, and SCIP_SyncStore::syncdata.
Referenced by SCIPconcsolverSync().
◆ SCIPsyncstoreGetNextSyncdata()
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
- Parameters
-
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 359 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().
◆ SCIPsyncstoreEnsureAllSynced()
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.
- Parameters
-
syncstore the synchronization store syncdata the synchronization data
Definition at line 407 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::nsolvers, NULL, SCIP_CALL, SCIP_OKAY, SCIPtpiAcquireLock(), SCIPtpiReleaseLock(), and SCIPtpiWaitCondition().
Referenced by SCIPconcsolverSync().
◆ SCIPsyncstoreStartSync()
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
- Parameters
-
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 436 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().
◆ SCIPsyncstoreFinishSync()
SCIP_RETCODE SCIPsyncstoreFinishSync | ( | SCIP_SYNCSTORE * | syncstore, |
SCIP_SYNCDATA ** | syncdata | ||
) |
finishes synchronization for the synchronization data
- Parameters
-
syncstore the synchronization store syncdata the synchronization data
Definition at line 479 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().
◆ SCIPsyncdataGetStatus()
SCIP_STATUS SCIPsyncdataGetStatus | ( | SCIP_SYNCDATA * | syncdata | ) |
gets status in synchronization data
- Parameters
-
syncdata the synchronization data
Definition at line 517 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE(), and SCIPconcsolverSync().
◆ SCIPsyncstoreGetWinner()
int SCIPsyncstoreGetWinner | ( | SCIP_SYNCSTORE * | syncstore | ) |
gets the solver that had the best status, or -1 if solve is not stopped yet
- Parameters
-
syncstore the synchronization store
Definition at line 527 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::lastsync, NULL, and SCIP_STATUS_UNKNOWN.
Referenced by SCIPconcurrentSolve(), and SCIPprintConcsolverStatistics().
◆ SCIPsyncdataGetNSynced()
int SCIPsyncdataGetNSynced | ( | SCIP_SYNCDATA * | syncdata | ) |
how many solvers have already finished synchronizing on this sychronization data
- Parameters
-
syncdata the synchronization data
Definition at line 541 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
◆ SCIPsyncstoreGetNSolvers()
int SCIPsyncstoreGetNSolvers | ( | SCIP_SYNCSTORE * | syncstore | ) |
how many solvers have are running concurrently
- Parameters
-
syncstore the synchronization store
Definition at line 551 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::nsolvers, and NULL.
Referenced by SCIPconcsolverSync(), and SCIPconcurrentSolve().
◆ SCIPsyncdataGetMemTotal()
SCIP_Longint SCIPsyncdataGetMemTotal | ( | SCIP_SYNCDATA * | syncdata | ) |
read amount of memory used from synchronization data
read amount total memory used from synchronization data
- Parameters
-
syncdata the synchronization data
Definition at line 562 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverGetMemTotal().
◆ SCIPsyncdataGetSyncFreq()
SCIP_Real SCIPsyncdataGetSyncFreq | ( | SCIP_SYNCDATA * | syncdata | ) |
read the synchronization frequency from a synchronization data
- Parameters
-
syncdata the synchronization data
Definition at line 572 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
◆ SCIPsyncdataGetUpperbound()
SCIP_Real SCIPsyncdataGetUpperbound | ( | SCIP_SYNCDATA * | syncdata | ) |
read the upperbound stored in a synchronization data
- Parameters
-
syncdata the synchronization data
Definition at line 582 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
◆ SCIPsyncdataGetLowerbound()
SCIP_Real SCIPsyncdataGetLowerbound | ( | SCIP_SYNCDATA * | syncdata | ) |
read the lowerbound stored in a synchronization data
- Parameters
-
syncdata the synchronization data
Definition at line 592 of file syncstore.c.
References NULL.
Referenced by SCIPconcsolverSync().
◆ SCIPsyncdataGetSolutions()
void SCIPsyncdataGetSolutions | ( | SCIP_SYNCDATA * | syncdata, |
SCIP_Real *** | solvalues, | ||
int ** | solowner, | ||
int * | nsols | ||
) |
read the solutions stored in a synchronization data
- Parameters
-
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 602 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCREAD().
◆ SCIPsyncdataGetBoundChgs()
SCIP_BOUNDSTORE* SCIPsyncdataGetBoundChgs | ( | SCIP_SYNCDATA * | syncdata | ) |
read bound changes stored in the synchronization data
- Parameters
-
syncdata the synchronization data
Definition at line 620 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCREAD(), and SCIPconcsolverSync().
◆ SCIPsyncdataSetSyncFreq()
void SCIPsyncdataSetSyncFreq | ( | SCIP_SYNCSTORE * | syncstore, |
SCIP_SYNCDATA * | syncdata, | ||
SCIP_Real | syncfreq | ||
) |
write the synchronization frequency to a synchronization data
- Parameters
-
syncstore the synchronization store syncdata the synchronization data syncfreq the synchronization frequency
Definition at line 630 of file syncstore.c.
References SCIP_SyncStore::initialized, MIN, NULL, and SCIP_SyncStore::syncfreqmax.
Referenced by SCIPconcsolverSync().
◆ SCIPsyncdataSetStatus()
void SCIPsyncdataSetStatus | ( | SCIP_SYNCDATA * | syncdata, |
SCIP_STATUS | status, | ||
int | solverid | ||
) |
set status in the synchronization data
- Parameters
-
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 644 of file syncstore.c.
References NULL, and SCIP_STATUS_OPTIMAL.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
◆ SCIPsyncdataAddMemTotal()
void SCIPsyncdataAddMemTotal | ( | SCIP_SYNCDATA * | syncdata, |
SCIP_Longint | memtotal | ||
) |
adds memory used to the synchronization data
- Parameters
-
syncdata the synchronization data the solution should be added to memtotal the number of bytes used
Definition at line 680 of file syncstore.c.
References NULL.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
◆ SCIPsyncdataSetUpperbound()
void SCIPsyncdataSetUpperbound | ( | SCIP_SYNCDATA * | syncdata, |
SCIP_Real | upperbound | ||
) |
set upperbound to the synchronization data
- Parameters
-
syncdata the synchronization data the upperbound should be added to upperbound the upperbound
Definition at line 691 of file syncstore.c.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
◆ SCIPsyncdataSetLowerbound()
void SCIPsyncdataSetLowerbound | ( | SCIP_SYNCDATA * | syncdata, |
SCIP_Real | lowerbound | ||
) |
set lowerbound to the synchronization data
- Parameters
-
syncdata the synchronization data the lowerbound should be added to lowerbound the lowerbound
Definition at line 702 of file syncstore.c.
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
◆ SCIPsyncdataGetSolutionBuffer()
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.
- Parameters
-
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 715 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::maxnsols, NULL, and SCIPswapPointers().
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
◆ SCIPsyncdataAddBoundChanges()
SCIP_RETCODE SCIPsyncdataAddBoundChanges | ( | SCIP_SYNCSTORE * | syncstore, |
SCIP_SYNCDATA * | syncdata, | ||
SCIP_BOUNDSTORE * | boundstore | ||
) |
adds bound changes to the synchronization data
- Parameters
-
syncstore the synchronization store syncdata the synchronization data boundstore bound store containing the bounds to add
Definition at line 774 of file syncstore.c.
References SCIP_SyncStore::initialized, SCIP_SyncStore::mainscip, NULL, SCIP_CALL, SCIP_OKAY, and SCIPboundstoreMerge().
Referenced by SCIP_DECL_CONCSOLVERSYNCWRITE().
◆ SCIPsyncstoreIsInitialized()
SCIP_Bool SCIPsyncstoreIsInitialized | ( | SCIP_SYNCSTORE * | syncstore | ) |
is synchronization store initialized
- Parameters
-
syncstore the synchronization store
Definition at line 791 of file syncstore.c.
References SCIP_SyncStore::initialized, and NULL.
Referenced by SCIP_DECL_EVENTINIT(), SCIPconcurrentSolve(), SCIPdispAutoActivate(), SCIPfreeProb(), and SCIPprintConcsolverStatistics().
◆ SCIPsyncstoreGetMode()
SCIP_PARALLELMODE SCIPsyncstoreGetMode | ( | SCIP_SYNCSTORE * | syncstore | ) |
returns the mode of the synchronization store
- Parameters
-
syncstore the synchronization store
Definition at line 801 of file syncstore.c.
References SCIP_SyncStore::mode, and NULL.