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.