IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 42895


Ignore:
Timestamp:
Jun 13, 2025, 10:57:40 AM (13 months ago)
Author:
eugene
Message:

adding pcstats to controller to track throughput

Location:
tags/ipp-unions-20250528/Ohana/src/opihi
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • tags/ipp-unions-20250528/Ohana/src/opihi/include/pcontrol.h

    r42389 r42895  
    343343void QuitCheckSystemThread (void);
    344344
     345void Stats_CheckBusyJobs (int reset);
     346void Stats_CheckDoneJobs (int reset);
     347void Stats_CheckKillJobs (int reset);
     348void Stats_CheckRespHosts (int reset);
     349void Stats_CheckDoneHosts (int reset);
     350void Stats_CheckDownHosts (int reset);
     351void Stats_CheckIdleHosts (int reset);
     352void Stats_CheckLiveHosts (int reset);
     353
    345354// Job   *FindJobByID (IDtype JobID, int *StackID);
    346355// Job   *FindJobInStackByID (int StackID, int ID);
  • tags/ipp-unions-20250528/Ohana/src/opihi/pantasks/Makefile

    r42886 r42895  
    8383$(SRC)/controller_output.$(ARCH).o \
    8484$(SRC)/controller_pulse.$(ARCH).o \
     85$(SRC)/controller_pcstats.$(ARCH).o \
    8586$(SRC)/task.$(ARCH).o \
    8687$(SRC)/task_host.$(ARCH).o \
  • tags/ipp-unions-20250528/Ohana/src/opihi/pantasks/controller.c

    r26411 r42895  
    1414int controller_check      PROTO((int, char **));
    1515int controller_output     PROTO((int, char **));
     16int controller_pcstats    PROTO((int, char **));
    1617int controller_pulse      PROTO((int, char **));
    1718
     
    3233  {1, "verbose",   controller_verbose,    "set controller verbosity"},
    3334  {1, "version",   controller_version,    "show controller version"},
     35  {1, "pcstats",   controller_pcstats,    "show pcontrol throughput stats"},
    3436  {1, "pulse",     controller_pulse,      "set controller pulse"},
    3537};
  • tags/ipp-unions-20250528/Ohana/src/opihi/pantasks/controller_hoststack.c

    r26411 r42895  
    99  if (argc != 2) {
    1010    gprint (GP_ERR, "USAGE: controller hoststack (hoststack)\n");
    11     gprint (GP_ERR, "       (hoststack) : pending, busy, exit, crash, hung, done\n");
     11    gprint (GP_ERR, "       (hoststack) : idle, busy, done, down, off\n");
    1212    return (FALSE);
    1313  }
  • tags/ipp-unions-20250528/Ohana/src/opihi/pcontrol/CheckSystem.c

    r42389 r42895  
    155155}
    156156
     157// CheckBusyJobs : Stats
     158
     159static int   Nt_CheckBusyJobs = 0;
     160static int   Np_CheckBusyJobs = 0;
     161static float dT_CheckBusyJobs = 0.0;
     162
     163void Stats_CheckBusyJobs (int reset) {
     164
     165  gprint (GP_LOG, "CBJ: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckBusyJobs, Nt_CheckBusyJobs, Nt_CheckBusyJobs / dT_CheckBusyJobs);
     166
     167  if (reset) {
     168    Nt_CheckBusyJobs = 0;
     169    Np_CheckBusyJobs = 0;
     170    dT_CheckBusyJobs = 0.0;
     171  }
     172}
     173
     174// CheckBusyJobs : Func
     175
    157176int CheckBusyJobs (float MaxDelay) {
    158177
     
    195214  }
    196215  if (DEBUG && (Nobject > 0)) gprint (GP_ERR, "checked %d of %d jobs\n", i, Nobject);
     216
     217  Np_CheckBusyJobs ++;
     218  Nt_CheckBusyJobs += i;
     219
     220  gettimeofday (&stop, (void *) NULL);
     221  dtime = DTIME (stop, start);
     222  dT_CheckBusyJobs += dtime;
    197223  return (i);
    198224}
     225
     226// CheckDoneJobs : Stats
     227
     228static int   Nt_CheckDoneJobs = 0;
     229static int   Np_CheckDoneJobs = 0;
     230static float dT_CheckDoneJobs = 0.0;
     231
     232void Stats_CheckDoneJobs (int reset) {
     233
     234  gprint (GP_LOG, "CDJ: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckDoneJobs, Nt_CheckDoneJobs, Nt_CheckDoneJobs / dT_CheckDoneJobs);
     235
     236  if (reset) {
     237    Nt_CheckDoneJobs = 0;
     238    Np_CheckDoneJobs = 0;
     239    dT_CheckDoneJobs = 0.0;
     240  }
     241}
     242
     243// CheckDoneJobs : Func
    199244
    200245int CheckDoneJobs (float MaxDelay) {
     
    234279  }
    235280  if (DEBUG && (Nobject > 0)) gprint (GP_ERR, "checked %d of %d jobs\n", i, Nobject);
     281
     282  Np_CheckDoneJobs ++;
     283  Nt_CheckDoneJobs += i;
     284
     285  gettimeofday (&stop, (void *) NULL);
     286  dtime = DTIME (stop, start);
     287  dT_CheckDoneJobs += dtime;
    236288  return (i);
    237289}
     290
     291// CheckKillJobs : Stats
     292
     293static int   Nt_CheckKillJobs = 0;
     294static int   Np_CheckKillJobs = 0;
     295static float dT_CheckKillJobs = 0.0;
     296
     297void Stats_CheckKillJobs (int reset) {
     298
     299  gprint (GP_LOG, "CKJ: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckKillJobs, Nt_CheckKillJobs, Nt_CheckKillJobs / dT_CheckKillJobs);
     300
     301  if (reset) {
     302    Nt_CheckKillJobs = 0;
     303    Np_CheckKillJobs = 0;
     304    dT_CheckKillJobs = 0.0;
     305  }
     306}
     307
     308// CheckKillJobs : Func
    238309
    239310int CheckKillJobs (float MaxDelay) {
     
    273344  }
    274345  if (DEBUG && (Nobject > 0)) gprint (GP_ERR, "checked %d of %d jobs\n", i, Nobject);
     346
     347  Np_CheckKillJobs ++;
     348  Nt_CheckKillJobs += i;
     349
     350  gettimeofday (&stop, (void *) NULL);
     351  dtime = DTIME (stop, start);
     352  dT_CheckKillJobs += dtime;
    275353  return (i);
    276354}
     355
     356// CheckRespHosts : Stats
     357
     358static int   Nt_CheckRespHosts = 0;
     359static int   Np_CheckRespHosts = 0;
     360static float dT_CheckRespHosts = 0.0;
     361
     362void Stats_CheckRespHosts (int reset) {
     363
     364  gprint (GP_LOG, "CRH: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckRespHosts, Nt_CheckRespHosts, Nt_CheckRespHosts / dT_CheckRespHosts);
     365
     366  if (reset) {
     367    Nt_CheckRespHosts = 0;
     368    Np_CheckRespHosts = 0;
     369    dT_CheckRespHosts = 0.0;
     370  }
     371}
     372
     373// CheckRespHosts : Func
    277374
    278375int CheckRespHosts (float MaxDelay) {
     
    314411  }
    315412  if (DEBUG) gprint (GP_ERR, "checked %d hosts\n", i);
     413
     414  Np_CheckRespHosts ++;
     415  Nt_CheckRespHosts += i;
     416
     417  gettimeofday (&stop, (void *) NULL);
     418  dtime = DTIME (stop, start);
     419  dT_CheckRespHosts += dtime;
    316420  return (i);
    317421}
     422
     423// CheckDoneHosts : Stats
     424
     425static int   Nt_CheckDoneHosts = 0;
     426static int   Np_CheckDoneHosts = 0;
     427static float dT_CheckDoneHosts = 0.0;
     428
     429void Stats_CheckDoneHosts (int reset) {
     430
     431  gprint (GP_LOG, "CDH: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckDoneHosts, Nt_CheckDoneHosts, Nt_CheckDoneHosts / dT_CheckDoneHosts);
     432
     433  if (reset) {
     434    Nt_CheckDoneHosts = 0;
     435    Np_CheckDoneHosts = 0;
     436    dT_CheckDoneHosts = 0.0;
     437  }
     438}
     439
     440// CheckDoneHosts : Func
    318441
    319442int CheckDoneHosts (float MaxDelay) {
     
    340463  }
    341464  if (DEBUG) gprint (GP_ERR, "checked %d hosts\n", i);
     465
     466  Np_CheckDoneHosts ++;
     467  Nt_CheckDoneHosts += i;
     468
     469  gettimeofday (&stop, (void *) NULL);
     470  dtime = DTIME (stop, start);
     471  dT_CheckDoneHosts += dtime;
    342472  return (i);
    343473}
     474
     475// CheckDownHosts : Stats
     476
     477static int   Nt_CheckDownHosts = 0;
     478static int   Np_CheckDownHosts = 0;
     479static float dT_CheckDownHosts = 0.0;
     480
     481void Stats_CheckDownHosts (int reset) {
     482
     483  gprint (GP_LOG, "CNH: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckDownHosts, Nt_CheckDownHosts, Nt_CheckDownHosts / dT_CheckDownHosts);
     484
     485  if (reset) {
     486    Nt_CheckDownHosts = 0;
     487    Np_CheckDownHosts = 0;
     488    dT_CheckDownHosts = 0.0;
     489  }
     490}
     491
     492// CheckDownHosts : Func
    344493
    345494int CheckDownHosts (float MaxDelay) {
     
    380529  }
    381530  if (DEBUG) gprint (GP_ERR, "checked %d hosts\n", i);
     531
     532  Np_CheckDownHosts ++;
     533  Nt_CheckDownHosts += i;
     534
     535  gettimeofday (&stop, (void *) NULL);
     536  dtime = DTIME (stop, start);
     537  dT_CheckDownHosts += dtime;
    382538  return (i);
    383539}
     540
     541// CheckIdleHosts : Stats
     542
     543static int   Nt_CheckIdleHosts = 0;
     544static int   Np_CheckIdleHosts = 0;
     545static float dT_CheckIdleHosts = 0.0;
     546
     547void Stats_CheckIdleHosts (int reset) {
     548
     549  gprint (GP_LOG, "CIH: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckIdleHosts, Nt_CheckIdleHosts, Nt_CheckIdleHosts / dT_CheckIdleHosts);
     550
     551  if (reset) {
     552    Nt_CheckIdleHosts = 0;
     553    Np_CheckIdleHosts = 0;
     554    dT_CheckIdleHosts = 0.0;
     555  }
     556}
     557
     558// CheckIdleHosts : Func
    384559
    385560// if we have any IDLE hosts, check if there are jobs to be launched
     
    399574  if (!stack[0].Nobject && (Stage != PCONTROL_JOB_STAGE_NEEDHOST)) return (0);
    400575
     576  // XXX note that our throughput statistics do not include this section
    401577  /* if there are no pending jobs, check for hosts that need to be reset */
    402578  if (!stack[0].Nobject) {
     
    431607
    432608  if (DEBUG) gprint (GP_ERR, "checked %d hosts\n", i);
     609
     610  Np_CheckIdleHosts ++;
     611  Nt_CheckIdleHosts += i;
     612
     613  gettimeofday (&stop, (void *) NULL);
     614  dtime = DTIME (stop, start);
     615  dT_CheckIdleHosts += dtime;
    433616  return (i);
    434617}
     618
     619// CheckLiveHosts : Stats
     620
     621static int   Nt_CheckLiveHosts = 0;
     622static int   Np_CheckLiveHosts = 0;
     623static float dT_CheckLiveHosts = 0.0;
     624
     625void Stats_CheckLiveHosts (int reset) {
     626
     627  gprint (GP_LOG, "CLH: Npass: %d, Ntest: %d, rate: %f\n", Np_CheckLiveHosts, Nt_CheckLiveHosts, Nt_CheckLiveHosts / dT_CheckLiveHosts);
     628
     629  if (reset) {
     630    Nt_CheckLiveHosts = 0;
     631    Np_CheckLiveHosts = 0;
     632    dT_CheckLiveHosts = 0.0;
     633  }
     634}
     635
     636// CheckLiveHosts : Func
    435637
    436638/* this is just a heartbeat check (only IDLE hosts) */
     
    458660  }
    459661  if (DEBUG) gprint (GP_ERR, "checked %d idle hosts\n", i);
     662
     663  Np_CheckLiveHosts ++;
     664  Nt_CheckLiveHosts += i;
     665
     666  gettimeofday (&stop, (void *) NULL);
     667  dtime = DTIME (stop, start);
     668  dT_CheckLiveHosts += dtime;
    460669  return (TRUE);
    461670}
  • tags/ipp-unions-20250528/Ohana/src/opihi/pcontrol/Makefile

    r41489 r42895  
    5454$(SRC)/pulse.$(ARCH).o \
    5555$(SRC)/parameters.$(ARCH).o \
     56$(SRC)/pcstats.$(ARCH).o \
    5657$(SRC)/run.$(ARCH).o \
    5758$(SRC)/machines.$(ARCH).o \
  • tags/ipp-unions-20250528/Ohana/src/opihi/pcontrol/init.c

    r26411 r42895  
    1010int machines    PROTO((int, char **));
    1111int parameters  PROTO((int, char **));
     12int pcstats     PROTO((int, char **));
    1213int run         PROTO((int, char **));
    1314int status      PROTO((int, char **));
     
    3031  {1, "machines",   machines,   "list machines"},
    3132  {1, "parameters", parameters, "get / set system parameters"},
     33  {1, "pcstats",    pcstats,    "show pcontrol througput stats"},
    3234  {1, "run",        run,        "set controller runlevel"},
    3335  {1, "status",     status,     "get system status"},
Note: See TracChangeset for help on using the changeset viewer.