Scippy

    SCIP

    Solving Constraint Integer Programs

    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)
     
    SCIP_Bool SCIPtpiIsAvailable (void)
     
    void SCIPtpiGetLibraryName (char *name, int namesize)
     
    void SCIPtpiGetLibraryDesc (char *desc, int descsize)
     

    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 45 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 56 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 87 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 98 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 107 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 115 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 125 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 134 of file tpi_none.c.

    ◆ SCIPtpiGetThreadNum()

    int SCIPtpiGetThreadNum ( void  )

    returns the thread number

    Definition at line 142 of file tpi_none.c.

    Referenced by applyBoundChanges(), 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 156 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 172 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 180 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 193 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 203 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 217 of file tpi_none.c.

    References SCIP_ERROR.

    Referenced by SCIPsyncstoreExit().

    ◆ SCIPtpiIsAvailable()

    SCIP_Bool SCIPtpiIsAvailable ( void  )

    indicate whether a working TPI is available

    Definition at line 225 of file tpi_none.c.

    References FALSE, and TRUE.

    Referenced by doScipCreate(), and SCIPsolveConcurrent().

    ◆ SCIPtpiGetLibraryName()

    void SCIPtpiGetLibraryName ( char *  name,
    int  namesize 
    )

    get name of library that the TPI interfaces to

    Parameters
    namebuffer to store name
    namesizelength of name buffer

    Definition at line 231 of file tpi_none.c.

    References NULL, and SCIPsnprintf().

    Referenced by doScipCreate().

    ◆ SCIPtpiGetLibraryDesc()

    void SCIPtpiGetLibraryDesc ( char *  desc,
    int  descsize 
    )

    get description of library that the TPI interfaces to

    Parameters
    descbuffer to store description
    descsizelength of description

    Definition at line 242 of file tpi_none.c.

    References NULL, and SCIPsnprintf().

    Referenced by doScipCreate().