tpi_openmp.c
Go to the documentation of this file.
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
50 SCIP_JOB** currentjobs; /**< array with slot for each thread to store the currently running job */
161 * As such, there will always be number of threads + 1 tasks available for the scheduler to run. */
213 /* @todo we want to work out what to do with a full job queue. Is there a problem if the limit is hit? */
214 /* @note it is important to have a queuesize. This will stop the code submitting infinitely many jobs. */
219 /* this function queries the current job list. This could change by other threads writing to the list. So a lock is
Definition: tpi_openmp.c:47
SCIP_RETCODE SCIPtpiCreateJob(SCIP_JOB **job, int jobid, SCIP_RETCODE(*jobfunc)(void *args), void *jobarg)
Definition: tpi_openmp.c:338
Definition: tpi_openmp.c:29
SCIP_RETCODE SCIPtpiAcquireLock(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiInitCondition(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiInit(int nthreads, int queuesize, SCIP_Bool blockwhenfull)
Definition: tpi_openmp.c:502
static SCIP_RETCODE createJobQueue(int nthreads, int qsize, SCIP_Bool blockwhenfull)
Definition: tpi_openmp.c:64
SCIP_RETCODE SCIPtpiSignalCondition(SCIP_CONDITION *condition)
Definition: tpi_openmp.c:260
SCIP_RETCODE SCIPtpiReleaseLock(SCIP_LOCK *lock)
the type definitions for the SCIP parallel interface
SCIP_RETCODE SCIPtpiSumbitJob(SCIP_JOB *job, SCIP_SUBMITSTATUS *status)
Definition: tpi_openmp.c:371
Definition: type_retcode.h:33
Definition: type_retcode.h:34
SCIP_RETCODE SCIPtpiInitLock(SCIP_LOCK *lock)
Definition: type_tpi.h:43
Definition: tpi_openmp.c:39
void SCIPtpiDestroyLock(SCIP_LOCK *lock)
void SCIPtpiDestroyCondition(SCIP_LOCK *lock)
SCIP_RETCODE SCIPtpiBroadcastCondition(SCIP_CONDITION *condition)
Definition: tpi_openmp.c:274
SCIP_RETCODE SCIPtpiWaitCondition(SCIP_CONDITION *condition, SCIP_LOCK *lock)
Definition: tpi_openmp.c:286
memory allocation routines