diff --git a/Control/PerformanceMonitoring/PerfMonComps/share/PerfMonMTSvc_jobOptions.py b/Control/PerformanceMonitoring/PerfMonComps/share/PerfMonMTSvc_jobOptions.py index 3936f4053b1118533560390177aea5ed35865ef4..486cddda601a4f4533e3cdc61f9753fb4c48c69a 100644 --- a/Control/PerformanceMonitoring/PerfMonComps/share/PerfMonMTSvc_jobOptions.py +++ b/Control/PerformanceMonitoring/PerfMonComps/share/PerfMonMTSvc_jobOptions.py @@ -4,7 +4,7 @@ from AthenaCommon.Logging import logging from AthenaCommon.AppMgr import ServiceMgr as svcMgr from AthenaCommon.ConcurrencyFlags import jobproperties as jp -import os,psutil +import os log = logging.getLogger("PerfMonMT") log.info("Setting up PerfMonMT...") @@ -16,7 +16,13 @@ if not hasattr(svcMgr, 'PerfMonMTSvc'): from PerfMonComps.MTJobOptCfg import PerfMonMTSvc svcMgr += PerfMonMTSvc("PerfMonMTSvc") # Set the job start time - svcMgr.PerfMonMTSvc.wallTimeOffset = psutil.Process(os.getpid()).create_time() * 1000 # Get the job start time in ms + try: + import psutil + svcMgr.PerfMonMTSvc.wallTimeOffset = psutil.Process(os.getpid()).create_time() * 1000 # Get the job start time in ms + except Exception: + log.warning("Cannot import psutil, wall-time measurements will be biased due to biased offset") + import time + svcMgr.PerfMonMTSvc.wallTimeOffset = time.time() * 1000 # Get the current time in ms as a substitute # Set number of threads/slots svcMgr.PerfMonMTSvc.numberOfThreads = max(1,jp.ConcurrencyFlags.NumThreads()) svcMgr.PerfMonMTSvc.numberOfSlots = max(1,jp.ConcurrencyFlags.NumConcurrentEvents())