Class Statistics

java.lang.Object
org.apache.sysds.utils.Statistics

public class Statistics extends Object
This class captures all statistics.
  • Field Details

    • recomputeNNZTime

      public static long recomputeNNZTime
    • examSparsityTime

      public static long examSparsityTime
    • allocateDoubleArrTime

      public static long allocateDoubleArrTime
    • allowWorkerStatistics

      public static boolean allowWorkerStatistics
  • Constructor Details

    • Statistics

      public Statistics()
  • Method Details

    • getNoOfExecutedSPInst

      public static long getNoOfExecutedSPInst()
    • incrementNoOfExecutedSPInst

      public static void incrementNoOfExecutedSPInst()
    • decrementNoOfExecutedSPInst

      public static void decrementNoOfExecutedSPInst()
    • getNoOfCompiledSPInst

      public static long getNoOfCompiledSPInst()
    • incrementNoOfCompiledSPInst

      public static void incrementNoOfCompiledSPInst()
    • getTotalUIPVar

      public static long getTotalUIPVar()
    • incrementTotalUIPVar

      public static void incrementTotalUIPVar()
    • getTotalLixUIP

      public static long getTotalLixUIP()
    • incrementTotalLixUIP

      public static void incrementTotalLixUIP()
    • getTotalLix

      public static long getTotalLix()
    • incrementTotalLix

      public static void incrementTotalLix()
    • resetNoOfCompiledJobs

      public static void resetNoOfCompiledJobs(int count)
    • resetNoOfExecutedJobs

      public static void resetNoOfExecutedJobs()
    • incrementJITCompileTime

      public static void incrementJITCompileTime(long time)
    • incrementJVMgcTime

      public static void incrementJVMgcTime(long time)
    • incrementJVMgcCount

      public static void incrementJVMgcCount(long delta)
    • incrementFunRecompileTime

      public static void incrementFunRecompileTime(long delta)
    • incrementFunRecompiles

      public static void incrementFunRecompiles()
    • startCompileTimer

      public static void startCompileTimer()
    • stopCompileTimer

      public static void stopCompileTimer()
    • getCompileTime

      public static long getCompileTime()
    • startRunTimer

      public static void startRunTimer()
      Starts the timer, should be invoked immediately before invoking Program.execute()
    • stopRunTimer

      public static void stopRunTimer()
      Stops the timer, should be invoked immediately after invoking Program.execute()
    • getRunTime

      public static long getRunTime()
      Returns the total time of run in nanoseconds.
      Returns:
      run time in nanoseconds
    • resetOOCEvictionStats

      public static void resetOOCEvictionStats()
    • getOOCHeavyHitters

      public static String getOOCHeavyHitters(int num)
    • maintainOOCHeavyHitter

      public static void maintainOOCHeavyHitter(String op, long timeNanos)
    • incrementOOCEvictionGet

      public static void incrementOOCEvictionGet()
    • incrementOOCEvictionGet

      public static void incrementOOCEvictionGet(int incr)
    • incrementOOCEvictionPut

      public static void incrementOOCEvictionPut()
    • incrementOOCLoadFromDisk

      public static void incrementOOCLoadFromDisk()
    • incrementOOCEvictionWrite

      public static void incrementOOCEvictionWrite()
    • accumulateOOCLoadFromDiskTime

      public static void accumulateOOCLoadFromDiskTime(long nanos)
    • accumulateOOCLoadFromDiskBytes

      public static void accumulateOOCLoadFromDiskBytes(long bytes)
    • accumulateOOCEvictionWriteTime

      public static void accumulateOOCEvictionWriteTime(long nanos)
    • accumulateOOCEvictionWriteBytes

      public static void accumulateOOCEvictionWriteBytes(long bytes)
    • displayOOCEvictionStats

      public static String displayOOCEvictionStats()
    • reset

      public static void reset()
    • resetJITCompileTime

      public static void resetJITCompileTime()
    • resetJVMgcTime

      public static void resetJVMgcTime()
    • resetJVMgcCount

      public static void resetJVMgcCount()
    • resetCPHeavyHitters

      public static void resetCPHeavyHitters()
    • getCPHeavyHitterCode

      public static String getCPHeavyHitterCode(Instruction inst)
    • addCPMemObject

      public static void addCPMemObject(int hash, double sizeof)
    • removeCPMemObject

      public static void removeCPMemObject(int hash)
      Helper method to remove a memory object which has become unpinned
      Parameters:
      hash - hash of data object
    • maintainCPHeavyHittersMem

      public static void maintainCPHeavyHittersMem(String name, double sizeof)
      Helper method which keeps track of the heaviest weight objects (by total memory used) throughout execution of the program. Only reported if JMLC memory statistics are enabled and finegrained statistics are enabled. We only keep track of the -largest- instance of data associated with a particular string identifier so no need to worry about multiple bindings to the same name
      Parameters:
      name - String denoting the variables name
      sizeof - objects size (estimated bytes)
    • maintainCPHeavyHitters

      public static void maintainCPHeavyHitters(String instName, long timeNanos)
      "Maintains" or adds time to per instruction/op timers, also increments associated count
      Parameters:
      instName - name of the instruction/op
      timeNanos - time in nano seconds
    • prepareNGramInst

      public static void prepareNGramInst(Map.Entry<String,LineageItem> li)
    • getCurrentLineageItem

      public static Optional<Map.Entry<String,LineageItem>> getCurrentLineageItem()
    • clearNGramRecording

      public static void clearNGramRecording()
    • extendLineageItem

      public static void extendLineageItem(LineageItem li, Statistics.LineageNGramExtension ext)
    • getExtendedLineage

      public static Statistics.LineageNGramExtension getExtendedLineage(LineageItem li)
    • maintainNGramsFromLineage

      public static void maintainNGramsFromLineage(Instruction tmp, ExecutionContext ec, long t0)
    • maintainNGramsFromLineage

      public static void maintainNGramsFromLineage(LineageItem li)
    • maintainNGrams

      public static void maintainNGrams(String instName, long timeNanos)
    • mergeNGrams

      public static NGramBuilder<String,Statistics.NGramStats>[] mergeNGrams()
    • getNGramStdDevs

      public static String getNGramStdDevs(Statistics.NGramStats[] stats, int offset, int prec, boolean displayZero)
    • getNGramAvgTimes

      public static String getNGramAvgTimes(Statistics.NGramStats[] stats, int offset, int prec)
    • toCSVStream

      public static void toCSVStream(NGramBuilder<String,Statistics.NGramStats> mbuilder, Consumer<String> lineConsumer)
    • nGramToCSV

      public static String nGramToCSV(NGramBuilder<String,Statistics.NGramStats> mbuilder)
    • getCommonNGrams

      public static String getCommonNGrams(NGramBuilder<String,Statistics.NGramStats> builder, int num)
    • maintainCPFuncCallStats

      public static void maintainCPFuncCallStats(String instName)
    • getCPHeavyHitterOpCodes

      public static Set<String> getCPHeavyHitterOpCodes()
    • getCPHeavyHitterCount

      public static long getCPHeavyHitterCount(String opcode)
    • getHeavyHittersHashMap

      public static HashMap<String,org.apache.commons.lang3.tuple.Pair<Long,Double>> getHeavyHittersHashMap()
    • getHeavyHitters

      public static String getHeavyHitters(int num)
      Obtain a string tabular representation of the heavy hitter instructions that displays the time, instruction count, and optionally GPU stats about each instruction.
      Parameters:
      num - the maximum number of heavy hitters to display
      Returns:
      string representing the heavy hitter instructions in tabular format
    • getCPHeavyHittersMem

      public static String getCPHeavyHittersMem(int num)
    • getJITCompileTime

      public static long getJITCompileTime()
      Returns the total time of asynchronous JIT compilation in milliseconds.
      Returns:
      JIT compile time
    • getJVMgcTime

      public static long getJVMgcTime()
    • getJVMgcCount

      public static long getJVMgcCount()
    • getFunRecompileTime

      public static long getFunRecompileTime()
    • getFunRecompiles

      public static long getFunRecompiles()
    • getNumPinnedObjects

      public static long getNumPinnedObjects()
    • getSizeofPinnedObjects

      public static double getSizeofPinnedObjects()
    • display

      public static String display()
      Returns statistics of the DML program that was recently completed as a string
      Returns:
      statistics as a string
    • wrap

      public static String[] wrap(String str, int wrapLength)
    • display

      public static String display(int maxHeavyHitters)
      Returns statistics as a string
      Parameters:
      maxHeavyHitters - The maximum number of heavy hitters that are printed
      Returns:
      statistics as string