Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for clocks and timing issues

    Author
    Tobias Achterberg

    Definition in file clock.c.

    #include <assert.h>
    #include <sys/times.h>
    #include <sys/time.h>
    #include <unistd.h>
    #include <time.h>
    #include "scip/def.h"
    #include "scip/pub_message.h"
    #include "blockmemshell/memory.h"
    #include "scip/set.h"
    #include "scip/clock.h"
    #include "scip/struct_clock.h"

    Go to the source code of this file.

    Functions

    static SCIP_Real cputime2sec (clock_t cputime)
     
    static SCIP_Real walltime2sec (long sec, long usec)
     
    static void sec2cputime (SCIP_Real sec, clock_t *cputime)
     
    static void sec2walltime (SCIP_Real sec, long *wallsec, long *wallusec)
     
    static void clockSetType (SCIP_CLOCK *clck, SCIP_CLOCKTYPE newtype)
     
    static void clockUpdateDefaultType (SCIP_CLOCK *clck, SCIP_CLOCKTYPE defaultclocktype)
     
    SCIP_RETCODE SCIPclockCreate (SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
     
    void SCIPclockFree (SCIP_CLOCK **clck)
     
    void SCIPclockInit (SCIP_CLOCK *clck, SCIP_CLOCKTYPE clocktype)
     
    void SCIPclockReset (SCIP_CLOCK *clck)
     
    void SCIPclockEnable (SCIP_CLOCK *clck)
     
    void SCIPclockDisable (SCIP_CLOCK *clck)
     
    void SCIPclockEnableOrDisable (SCIP_CLOCK *clck, SCIP_Bool enable)
     
    void SCIPclockSetType (SCIP_CLOCK *clck, SCIP_CLOCKTYPE clocktype)
     
    void SCIPclockStart (SCIP_CLOCK *clck, SCIP_SET *set)
     
    void SCIPclockStop (SCIP_CLOCK *clck, SCIP_SET *set)
     
    SCIP_Bool SCIPclockIsRunning (SCIP_CLOCK *clck)
     
    SCIP_Real SCIPclockGetTime (SCIP_CLOCK *clck)
     
    SCIP_Real SCIPclockGetLastTime (SCIP_CLOCK *clck)
     
    void SCIPclockSetTime (SCIP_CLOCK *clck, SCIP_Real sec)
     
    SCIP_Real SCIPclockGetTimeOfDay (void)
     

    Function Documentation

    ◆ cputime2sec()

    static SCIP_Real cputime2sec ( clock_t  cputime)
    static

    converts CPU clock ticks into seconds

    Parameters
    cputimeclock ticks for CPU time

    Definition at line 53 of file clock.c.

    References SCIP_Real.

    Referenced by SCIPclockGetTime(), and SCIPclockStart().

    ◆ walltime2sec()

    static SCIP_Real walltime2sec ( long  sec,
    long  usec 
    )
    static

    converts wall clock time into seconds

    Parameters
    secseconds counter
    usecmicroseconds counter

    Definition at line 77 of file clock.c.

    References SCIP_Real.

    Referenced by SCIPclockGetTime(), and SCIPclockStart().

    ◆ sec2cputime()

    static void sec2cputime ( SCIP_Real  sec,
    clock_t *  cputime 
    )
    static

    converts seconds into CPU clock ticks

    Parameters
    secseconds
    cputimepointer to store clock ticks for CPU time

    Definition at line 87 of file clock.c.

    References NULL.

    Referenced by SCIPclockSetTime().

    ◆ sec2walltime()

    static void sec2walltime ( SCIP_Real  sec,
    long *  wallsec,
    long *  wallusec 
    )
    static

    converts wall clock time into seconds

    Parameters
    secseconds
    wallsecpointer to store seconds counter
    wallusecpointer to store microseconds counter

    Definition at line 110 of file clock.c.

    References NULL.

    Referenced by SCIPclockSetTime().

    ◆ clockSetType()

    static void clockSetType ( SCIP_CLOCK clck,
    SCIP_CLOCKTYPE  newtype 
    )
    static

    sets the clock's type and converts the clock timer accordingly

    Parameters
    clckclock timer
    newtypenew clock type

    Definition at line 126 of file clock.c.

    References SCIP_Clock::clocktype, SCIP_Clock::nruns, NULL, SCIP_CLOCKTYPE_DEFAULT, SCIP_Real, SCIPclockGetTime(), SCIPclockReset(), SCIPclockSetTime(), and SCIPdebugMessage.

    Referenced by clockUpdateDefaultType(), and SCIPclockSetTime().

    ◆ clockUpdateDefaultType()

    static void clockUpdateDefaultType ( SCIP_CLOCK clck,
    SCIP_CLOCKTYPE  defaultclocktype 
    )
    static

    if the clock uses the default clock type and the default changed, converts the clock timer to the new type

    Parameters
    clckclock timer
    defaultclocktypedefault type of clock to use

    Definition at line 157 of file clock.c.

    References clockSetType(), SCIP_Clock::clocktype, NULL, SCIP_CLOCKTYPE_DEFAULT, and SCIP_Clock::usedefault.

    Referenced by SCIPclockStart().

    ◆ SCIPclockCreate()

    ◆ SCIPclockFree()

    ◆ SCIPclockInit()

    void SCIPclockInit ( SCIP_CLOCK clck,
    SCIP_CLOCKTYPE  clocktype 
    )

    initializes and resets a clock

    Parameters
    clckclock timer
    clocktypetype of clock

    Definition at line 195 of file clock.c.

    References SCIP_Clock::enabled, SCIP_Clock::lasttime, NULL, SCIPclockSetType(), SCIPdebugMessage, and TRUE.

    Referenced by SCIPclockCreate().

    ◆ SCIPclockReset()

    ◆ SCIPclockEnable()

    void SCIPclockEnable ( SCIP_CLOCK clck)

    enables the clock

    Parameters
    clckclock timer

    Definition at line 235 of file clock.c.

    References SCIP_Clock::clocktype, SCIP_Clock::enabled, NULL, SCIPdebugMessage, TRUE, and SCIP_Clock::usedefault.

    Referenced by SCIPclockEnableOrDisable().

    ◆ SCIPclockDisable()

    void SCIPclockDisable ( SCIP_CLOCK clck)

    disables and resets the clock

    Parameters
    clckclock timer

    Definition at line 247 of file clock.c.

    References SCIP_Clock::clocktype, SCIP_Clock::enabled, FALSE, NULL, SCIPclockReset(), SCIPdebugMessage, and SCIP_Clock::usedefault.

    Referenced by SCIPclockEnableOrDisable().

    ◆ SCIPclockEnableOrDisable()

    ◆ SCIPclockSetType()

    void SCIPclockSetType ( SCIP_CLOCK clck,
    SCIP_CLOCKTYPE  clocktype 
    )

    sets the type of the clock, overriding the default clock type, and resets the clock

    Parameters
    clckclock timer
    clocktypetype of clock

    Definition at line 274 of file clock.c.

    References SCIP_Clock::clocktype, NULL, SCIP_CLOCKTYPE_DEFAULT, SCIPclockReset(), SCIPdebugMessage, and SCIP_Clock::usedefault.

    Referenced by SCIPclockInit().

    ◆ SCIPclockStart()

    void SCIPclockStart ( SCIP_CLOCK clck,
    SCIP_SET set 
    )

    starts measurement of time in the given clock

    Parameters
    clckclock timer
    setglobal SCIP settings

    Definition at line 290 of file clock.c.

    References SCIP_Clock::clocktype, clockUpdateDefaultType(), cputime2sec(), SCIP_Clock::enabled, SCIP_Clock::nruns, NULL, SCIP_CLOCKTYPE_CPU, SCIP_CLOCKTYPE_DEFAULT, SCIP_CLOCKTYPE_WALL, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, and walltime2sec().

    Referenced by addCurrentSolution(), addNode(), conflictAddConflictCons(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), doCopy(), doScipCreate(), lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), lpPrimalSimplex(), nlpSolve(), nodeRepropagate(), performStrongbranchWithPropagation(), presolve(), SCIPbenderscutExec(), SCIPbenderscutExit(), SCIPbenderscutExitsol(), SCIPbenderscutInit(), SCIPbenderscutInitsol(), SCIPbendersExec(), SCIPbendersExit(), SCIPbendersExitpre(), SCIPbendersExitsol(), SCIPbendersInit(), SCIPbendersInitpre(), SCIPbendersInitsol(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPbranchruleExit(), SCIPbranchruleExitsol(), SCIPbranchruleInit(), SCIPbranchruleInitsol(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcomprExec(), SCIPcomprExit(), SCIPcomprInit(), SCIPconflictAnalyze(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeResolution(), SCIPconflictAnalyzeStrongbranch(), SCIPconflicthdlrExec(), SCIPconflicthdlrExit(), SCIPconflicthdlrExitsol(), SCIPconflicthdlrInit(), SCIPconflicthdlrInitsol(), SCIPconshdlrCheck(), SCIPconshdlrEnforceLPSol(), SCIPconshdlrEnforcePseudoSol(), SCIPconshdlrEnforceRelaxSol(), SCIPconshdlrExit(), SCIPconshdlrExitpre(), SCIPconshdlrExitsol(), SCIPconshdlrInit(), SCIPconshdlrInitLP(), SCIPconshdlrInitpre(), SCIPconshdlrInitsol(), SCIPconshdlrPresolve(), SCIPconshdlrPropagate(), SCIPconshdlrSeparateLP(), SCIPconshdlrSeparateSol(), SCIPconsResolvePropagation(), SCIPcutpoolSeparate(), SCIPcutselExit(), SCIPcutselExitsol(), SCIPcutselInit(), SCIPcutselInitsol(), SCIPcutselsSelect(), SCIPeventhdlrExec(), SCIPeventhdlrExit(), SCIPeventhdlrExitsol(), SCIPeventhdlrInit(), SCIPeventhdlrInitsol(), SCIPexprhdlrEstimateExpr(), SCIPexprhdlrInitEstimatesExpr(), SCIPexprhdlrIntEvalExpr(), SCIPexprhdlrReversePropExpr(), SCIPexprhdlrSimplifyExpr(), SCIPheurExec(), SCIPheurExit(), SCIPheurExitsol(), SCIPheurInit(), SCIPheurInitsol(), SCIPiisGenerate(), SCIPlpExactSolveAndEval(), SCIPnlpiAddConstraints(), SCIPnlpiAddVars(), SCIPnlpiChgConsSides(), SCIPnlpiChgExpr(), SCIPnlpiChgLinearCoefs(), SCIPnlpiChgObjConstant(), SCIPnlpiChgVarBounds(), SCIPnlpiCreateProblem(), SCIPnlpiDelConsSet(), SCIPnlpiDelVarSet(), SCIPnlpiFreeProblem(), SCIPnlpiSetObjective(), SCIPnodeselExit(), SCIPnodeselExitsol(), SCIPnodeselInit(), SCIPnodeselInitsol(), SCIPnodeselSelect(), SCIPpresolExec(), SCIPpresolExit(), SCIPpresolExitpre(), SCIPpresolInit(), SCIPpresolInitpre(), SCIPpresolve(), SCIPpricerExit(), SCIPpricerExitsol(), SCIPpricerFarkas(), SCIPpricerInit(), SCIPpricerInitsol(), SCIPpricerRedcost(), SCIPpricestoreAddProbVars(), SCIPpropExec(), SCIPpropExit(), SCIPpropExitpre(), SCIPpropExitsol(), SCIPpropInit(), SCIPpropInitpre(), SCIPpropInitsol(), SCIPpropPresol(), SCIPpropResolvePropagation(), SCIPreaderRead(), SCIPrelaxExec(), SCIPrelaxExit(), SCIPrelaxExitsol(), SCIPrelaxInit(), SCIPrelaxInitsol(), SCIPrunBoundHeuristic(), SCIPsepaExecLP(), SCIPsepaExecSol(), SCIPsepaExit(), SCIPsepaExitsol(), SCIPsepaInit(), SCIPsepaInitsol(), SCIPsolve(), SCIPsolveCIP(), SCIPsolveConcurrent(), SCIPstartClock(), SCIPstartSolvingTime(), and SCIPtryStrongbranchLPSol().

    ◆ SCIPclockStop()

    void SCIPclockStop ( SCIP_CLOCK clck,
    SCIP_SET set 
    )

    stops measurement of time in the given clock

    Parameters
    clckclock timer
    setglobal SCIP settings

    Definition at line 360 of file clock.c.

    References SCIP_Clock::clocktype, SCIP_Clock::enabled, SCIP_Clock::nruns, NULL, SCIP_CLOCKTYPE_CPU, SCIP_CLOCKTYPE_DEFAULT, SCIP_CLOCKTYPE_WALL, SCIPABORT, SCIPdebugMessage, and SCIPerrorMessage.

    Referenced by addCurrentSolution(), addNode(), conflictAddConflictCons(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), doCopy(), lpBarrier(), lpDualSimplex(), lpLexDualSimplex(), lpPrimalSimplex(), nlpSolve(), nodeRepropagate(), performStrongbranchWithPropagation(), presolve(), SCIPbenderscutExec(), SCIPbenderscutExit(), SCIPbenderscutExitsol(), SCIPbenderscutInit(), SCIPbenderscutInitsol(), SCIPbendersExec(), SCIPbendersExit(), SCIPbendersExitpre(), SCIPbendersExitsol(), SCIPbendersInit(), SCIPbendersInitpre(), SCIPbendersInitsol(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPbranchruleExit(), SCIPbranchruleExitsol(), SCIPbranchruleInit(), SCIPbranchruleInitsol(), SCIPcolGetStrongbranch(), SCIPcolGetStrongbranches(), SCIPcomprExec(), SCIPcomprExit(), SCIPcomprInit(), SCIPconflictAnalyze(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeResolution(), SCIPconflictAnalyzeStrongbranch(), SCIPconflicthdlrExec(), SCIPconflicthdlrExit(), SCIPconflicthdlrExitsol(), SCIPconflicthdlrInit(), SCIPconflicthdlrInitsol(), SCIPconshdlrCheck(), SCIPconshdlrEnforceLPSol(), SCIPconshdlrEnforcePseudoSol(), SCIPconshdlrEnforceRelaxSol(), SCIPconshdlrExit(), SCIPconshdlrExitpre(), SCIPconshdlrExitsol(), SCIPconshdlrInit(), SCIPconshdlrInitLP(), SCIPconshdlrInitpre(), SCIPconshdlrInitsol(), SCIPconshdlrPresolve(), SCIPconshdlrPropagate(), SCIPconshdlrSeparateLP(), SCIPconshdlrSeparateSol(), SCIPconsResolvePropagation(), SCIPcutpoolSeparate(), SCIPcutselExit(), SCIPcutselExitsol(), SCIPcutselInit(), SCIPcutselInitsol(), SCIPcutselsSelect(), SCIPeventhdlrExec(), SCIPeventhdlrExit(), SCIPeventhdlrExitsol(), SCIPeventhdlrInit(), SCIPeventhdlrInitsol(), SCIPexprhdlrEstimateExpr(), SCIPexprhdlrInitEstimatesExpr(), SCIPexprhdlrIntEvalExpr(), SCIPexprhdlrReversePropExpr(), SCIPexprhdlrSimplifyExpr(), SCIPheurExec(), SCIPheurExit(), SCIPheurExitsol(), SCIPheurInit(), SCIPheurInitsol(), SCIPiisGenerate(), SCIPlpExactSolveAndEval(), SCIPnlpiAddConstraints(), SCIPnlpiAddVars(), SCIPnlpiChgConsSides(), SCIPnlpiChgExpr(), SCIPnlpiChgLinearCoefs(), SCIPnlpiChgObjConstant(), SCIPnlpiChgVarBounds(), SCIPnlpiCreateProblem(), SCIPnlpiDelConsSet(), SCIPnlpiDelVarSet(), SCIPnlpiFreeProblem(), SCIPnlpiSetObjective(), SCIPnodeselExit(), SCIPnodeselExitsol(), SCIPnodeselInit(), SCIPnodeselInitsol(), SCIPnodeselSelect(), SCIPpresolExec(), SCIPpresolExit(), SCIPpresolExitpre(), SCIPpresolInit(), SCIPpresolInitpre(), SCIPpresolve(), SCIPpricerExit(), SCIPpricerExitsol(), SCIPpricerFarkas(), SCIPpricerInit(), SCIPpricerInitsol(), SCIPpricerRedcost(), SCIPpricestoreAddProbVars(), SCIPpropExec(), SCIPpropExit(), SCIPpropExitpre(), SCIPpropExitsol(), SCIPpropInit(), SCIPpropInitpre(), SCIPpropInitsol(), SCIPpropPresol(), SCIPpropResolvePropagation(), SCIPreaderRead(), SCIPrelaxExec(), SCIPrelaxExit(), SCIPrelaxExitsol(), SCIPrelaxInit(), SCIPrelaxInitsol(), SCIPrunBoundHeuristic(), SCIPsepaExecLP(), SCIPsepaExecSol(), SCIPsepaExit(), SCIPsepaExitsol(), SCIPsepaInit(), SCIPsepaInitsol(), SCIPsolve(), SCIPsolveCIP(), SCIPsolveConcurrent(), SCIPstopClock(), SCIPstopSolvingTime(), and SCIPtryStrongbranchLPSol().

    ◆ SCIPclockIsRunning()

    SCIP_Bool SCIPclockIsRunning ( SCIP_CLOCK clck)

    returns whether the clock is currently running

    Parameters
    clckclock timer

    Definition at line 427 of file clock.c.

    References SCIP_Clock::nruns, and NULL.

    Referenced by nodeRepropagate(), and SCIPreaderRead().

    ◆ SCIPclockGetTime()

    SCIP_Real SCIPclockGetTime ( SCIP_CLOCK clck)

    gets the used time of this clock in seconds

    Parameters
    clckclock timer

    Definition at line 438 of file clock.c.

    References SCIP_Clock::clocktype, SCIP_Clock::cpuclock, cputime2sec(), SCIP_Clock::data, SCIP_Clock::enabled, EPSN, SCIP_Clock::lasttime, SCIP_Clock::nruns, NULL, SCIP_CLOCKTYPE_CPU, SCIP_CLOCKTYPE_DEFAULT, SCIP_CLOCKTYPE_WALL, SCIP_Real, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIP_WallClock::sec, SCIP_WallClock::usec, SCIP_Clock::usedefault, SCIP_CPUClock::user, SCIP_Clock::wallclock, and walltime2sec().

    Referenced by applyVbounds(), clockSetType(), createSubscipIIS(), displayRelevantStats(), doCopy(), lpAlgorithm(), lpBarrier(), lpDualSimplex(), lpExactFlushAndSolve(), lpLexDualSimplex(), lpPrimalSimplex(), printTime(), SCIPbenderscutGetSetupTime(), SCIPbenderscutGetTime(), SCIPbendersGetSetupTime(), SCIPbendersGetTime(), SCIPbranchruleGetSetupTime(), SCIPbranchruleGetTime(), SCIPcollectHeuristicStatistics(), SCIPcollectLPStatistics(), SCIPcollectNLPStatistics(), SCIPcollectTimingStatistics(), SCIPcollectTreeStatistics(), SCIPcomprGetSetupTime(), SCIPcomprGetTime(), SCIPconcsolverGetSyncTime(), SCIPconflictGetBoundexceedingLPTime(), SCIPconflictGetGlobalApplTime(), SCIPconflictGetInfeasibleLPTime(), SCIPconflictGetPropTime(), SCIPconflictGetPseudoTime(), SCIPconflictGetResTime(), SCIPconflictGetStrongbranchTime(), SCIPconflicthdlrGetSetupTime(), SCIPconflicthdlrGetTime(), SCIPconshdlrGetCheckTime(), SCIPconshdlrGetEnfoLPTime(), SCIPconshdlrGetEnfoPSTime(), SCIPconshdlrGetEnfoRelaxTime(), SCIPconshdlrGetPresolTime(), SCIPconshdlrGetPropTime(), SCIPconshdlrGetRespropTime(), SCIPconshdlrGetSepaTime(), SCIPconshdlrGetSetupTime(), SCIPconshdlrGetStrongBranchPropTime(), SCIPcutpoolGetTime(), SCIPcutselGetSetupTime(), SCIPcutselGetTime(), SCIPeventhdlrGetSetupTime(), SCIPeventhdlrGetTime(), SCIPexprhdlrGetEstimateTime(), SCIPexprhdlrGetIntevalTime(), SCIPexprhdlrGetReversepropTime(), SCIPexprhdlrGetSimplifyTime(), SCIPgetClockTime(), SCIPgetPresolvingTime(), SCIPgetSolvingTime(), SCIPgetTotalTime(), SCIPheurGetSetupTime(), SCIPheurGetTime(), SCIPiisfinderGetTime(), SCIPiisGenerate(), SCIPiisGetTime(), SCIPlpExactSolveAndEval(), SCIPnlpiGetProblemTime(), SCIPnlpiMergeStatistics(), SCIPnlpiSolve(), SCIPnodeselGetSetupTime(), SCIPnodeselGetTime(), SCIPpresolGetSetupTime(), SCIPpresolGetTime(), SCIPpresolve(), SCIPpricerGetSetupTime(), SCIPpricerGetTime(), SCIPpricestoreGetProbPricingTime(), SCIPprintHeuristicStatistics(), SCIPprintLPStatistics(), SCIPprintNLPStatistics(), SCIPprintReoptStatistics(), SCIPprintTimingStatistics(), SCIPprintTreeStatistics(), SCIPpropGetPresolTime(), SCIPpropGetRespropTime(), SCIPpropGetSetupTime(), SCIPpropGetStrongBranchPropTime(), SCIPpropGetTime(), SCIPreaderGetReadingTime(), SCIPreaderRead(), SCIPrelaxExec(), SCIPrelaxGetSetupTime(), SCIPrelaxGetTime(), SCIPreoptGetSavingtime(), SCIPsepaGetSetupTime(), SCIPsepaGetTime(), SCIPsolveIsStopped(), SCIPstatUpdatePrimalDualIntegrals(), solStamp(), and solveNodeInitialLP().

    ◆ SCIPclockGetLastTime()

    SCIP_Real SCIPclockGetLastTime ( SCIP_CLOCK clck)

    gets the last validated time of this clock in seconds

    Parameters
    clckclock timer

    Definition at line 529 of file clock.c.

    References SCIP_Clock::lasttime, and NULL.

    Referenced by SCIPsolveIsStopped(), and solStamp().

    ◆ SCIPclockSetTime()

    ◆ SCIPclockGetTimeOfDay()

    SCIP_Real SCIPclockGetTimeOfDay ( void  )

    gets current time of day in seconds (standard time zone)

    Definition at line 621 of file clock.c.

    References NULL, and SCIP_Real.

    Referenced by SCIPgetTimeOfDay().