Scippy

SCIP

Solving Constraint Integer Programs

tpi.h File Reference

Detailed Description

the type definitions for the SCIP parallel interface

Author
Leona Gottwald
Stephen J. Maher
Marc Pfetsch

Definition in file tpi.h.

#include "scip/def.h"
#include "scip/type_retcode.h"
#include "tpi/type_tpi.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPtpiInitLock (SCIP_LOCK **lock)
 
void SCIPtpiDestroyLock (SCIP_LOCK **lock)
 
SCIP_RETCODE SCIPtpiAcquireLock (SCIP_LOCK *lock)
 
SCIP_RETCODE SCIPtpiReleaseLock (SCIP_LOCK *lock)
 
SCIP_RETCODE SCIPtpiInitCondition (SCIP_CONDITION **condition)
 
void SCIPtpiDestroyCondition (SCIP_CONDITION **condition)
 
SCIP_RETCODE SCIPtpiSignalCondition (SCIP_CONDITION *condition)
 
SCIP_RETCODE SCIPtpiBroadcastCondition (SCIP_CONDITION *condition)
 
SCIP_RETCODE SCIPtpiWaitCondition (SCIP_CONDITION *condition, SCIP_LOCK *lock)
 
int SCIPtpiGetNumThreads (void)
 
int SCIPtpiGetThreadNum (void)
 
SCIP_RETCODE SCIPtpiCreateJob (SCIP_JOB **job, int jobid, SCIP_RETCODE(*jobfunc)(void *args), void *jobarg)
 
int SCIPtpiGetNewJobID (void)
 
SCIP_RETCODE SCIPtpiSubmitJob (SCIP_JOB *job, SCIP_SUBMITSTATUS *status)
 
SCIP_RETCODE SCIPtpiCollectJobs (int jobid)
 
SCIP_RETCODE SCIPtpiInit (int nthreads, int queuesize, SCIP_Bool blockwhenfull)
 
SCIP_RETCODE SCIPtpiExit (void)
 

Function Documentation

◆ SCIPtpiInitLock()

SCIP_RETCODE SCIPtpiInitLock ( SCIP_LOCK **  lock)

creates and initializes the given lock

initializes the given lock

Parameters
lockthe lock

Definition at line 44 of file tpi_none.c.

References BMSallocMemory, BMSfreeMemory, SCIP_JobQueues::lock, NULL, SCIP_ALLOC, SCIP_ERROR, and SCIP_OKAY.

Referenced by SCIPsyncstoreCreate(), and SCIPsyncstoreInit().

◆ SCIPtpiDestroyLock()

void SCIPtpiDestroyLock ( SCIP_LOCK **  lock)

destroys and frees the given lock

destroys the given lock

Parameters
lockthe lock

Definition at line 55 of file tpi_none.c.

References BMSfreeMemory, SCIP_JobQueues::lock, and NULL.

Referenced by SCIPsyncstoreExit(), and SCIPsyncstoreRelease().

◆ SCIPtpiAcquireLock()

◆ SCIPtpiReleaseLock()

◆ SCIPtpiInitCondition()

SCIP_RETCODE SCIPtpiInitCondition ( SCIP_CONDITION **  condition)

initializes the given condition variable

Parameters
conditioncondition to be created and initialized

Definition at line 86 of file tpi_none.c.

References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_ERROR, and SCIP_OKAY.

Referenced by SCIPsyncstoreInit().

◆ SCIPtpiDestroyCondition()

void SCIPtpiDestroyCondition ( SCIP_CONDITION **  condition)

destroys the given condition variable

Parameters
conditioncondition to be destroyed and freed

Definition at line 97 of file tpi_none.c.

References BMSfreeMemory, and NULL.

Referenced by SCIPsyncstoreExit().

◆ SCIPtpiSignalCondition()

SCIP_RETCODE SCIPtpiSignalCondition ( SCIP_CONDITION condition)

signals one waiting thread

signal a condition

Parameters
conditionthe condition variable to signal

Definition at line 106 of file tpi_none.c.

References SCIP_Condition::condition, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPompAcquireLock, and SCIPompReleaseLock.

◆ SCIPtpiBroadcastCondition()

SCIP_RETCODE SCIPtpiBroadcastCondition ( SCIP_CONDITION condition)

signals all waiting threads

broadcase a condition

Parameters
conditionthe condition variable to broadcast

Definition at line 114 of file tpi_none.c.

References SCIP_Condition::condition, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPompAcquireLock, and SCIPompReleaseLock.

Referenced by SCIPsyncstoreFinishSync().

◆ SCIPtpiWaitCondition()

SCIP_RETCODE SCIPtpiWaitCondition ( SCIP_CONDITION condition,
SCIP_LOCK lock 
)

waits on a condition variable. The given lock must be held by the caller and will be held when this function returns.

wait for a condition

Parameters
conditionthe condition variable to wait on
lockthe lock that is held by the caller

Definition at line 124 of file tpi_none.c.

References SCIP_Condition::condition, SCIP_Lock::lock, SCIP_JobQueues::lock, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPompAcquireLock, SCIPompReleaseLock, SCIPtpiAcquireLock(), and SCIPtpiReleaseLock().

Referenced by SCIPsyncstoreEnsureAllSynced().

◆ SCIPtpiGetNumThreads()

int SCIPtpiGetNumThreads ( void  )

returns the number of threads

Definition at line 133 of file tpi_none.c.

◆ SCIPtpiGetThreadNum()

int SCIPtpiGetThreadNum ( void  )

returns the thread number

Definition at line 141 of file tpi_none.c.

Referenced by applyBoundChanges(), execConcsolver(), and executeJob().

◆ SCIPtpiCreateJob()

SCIP_RETCODE SCIPtpiCreateJob ( SCIP_JOB **  job,
int  jobid,
SCIP_RETCODE(*)(void *args)  jobfunc,
void *  jobarg 
)

creates a job for parallel processing

Parameters
jobpointer to the job that will be created
jobidthe id for the current job
jobfuncpointer to the job function
jobargthe job's argument

Definition at line 155 of file tpi_none.c.

References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_ERROR, SCIP_OKAY, and SCIP_UNUSED.

Referenced by SCIPconcurrentSolve().

◆ SCIPtpiGetNewJobID()

int SCIPtpiGetNewJobID ( void  )

get a new job id for a new set of jobs

get a new job id for the new set of submitted jobs

Definition at line 171 of file tpi_none.c.

Referenced by SCIPconcurrentSolve().

◆ SCIPtpiSubmitJob()

SCIP_RETCODE SCIPtpiSubmitJob ( SCIP_JOB job,
SCIP_SUBMITSTATUS status 
)

submit a job for parallel processing; the return value is a globally defined status

Parameters
jobpointer to the job to be submitted
statuspointer to store the job's submit status

Definition at line 179 of file tpi_none.c.

References SCIP_Job::jobid, NULL, SCIP_ERROR, and SCIP_UNUSED.

Referenced by SCIPconcurrentSolve().

◆ SCIPtpiCollectJobs()

SCIP_RETCODE SCIPtpiCollectJobs ( int  jobid)

blocks until all jobs of the given jobid have finished and then returns the smallest SCIP_RETCODE of all the jobs

Blocks until all jobs with the given jobid have finished and then returns the smallest SCIP_RETCODE of all the jobs

Parameters
jobidthe jobid of the jobs to wait for

Definition at line 192 of file tpi_none.c.

References SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIP_UNUSED, SCIPompAcquireLock, and SCIPtnyAcquireLock.

Referenced by SCIPconcurrentSolve().

◆ SCIPtpiInit()

SCIP_RETCODE SCIPtpiInit ( int  nthreads,
int  queuesize,
SCIP_Bool  blockwhenfull 
)

initializes tpi

Parameters
nthreadsthe number of threads to be used
queuesizethe size of the queue
blockwhenfullshould the queue block when full

Definition at line 202 of file tpi_none.c.

References SCIP_JobQueues::nthreads, SCIP_ERROR, and SCIP_UNUSED.

Referenced by SCIPsyncstoreInit().

◆ SCIPtpiExit()

SCIP_RETCODE SCIPtpiExit ( void  )

deinitializes the tpi

deinitializes tpi

Definition at line 216 of file tpi_none.c.

References SCIP_ERROR.

Referenced by SCIPsyncstoreExit().