From cc0e502628e422531f25acfdc5fa1b4f4f73a333 Mon Sep 17 00:00:00 2001 From: Christos Lamprakos Date: Thu, 24 Feb 2022 14:24:40 +0200 Subject: [PATCH 1/6] Fix --inherit-environ issue --- pyperformance/_benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyperformance/_benchmark.py b/pyperformance/_benchmark.py index cd51dfe6..516fbbd1 100644 --- a/pyperformance/_benchmark.py +++ b/pyperformance/_benchmark.py @@ -252,7 +252,7 @@ def _resolve_restricted_opts(opts): if opt.startswith(FLAG + '='): idx = i + 1 resolved.append(FLAG) - resolved.append(opt.partition('=')[-2]) + resolved.append(opt.partition('=')[-1]) resolved.extend(opts[idx:]) break elif opt == FLAG: From 4e4fa68b51f3ba44e895717abe74a262c3488162 Mon Sep 17 00:00:00 2001 From: "Christos P. Lamprakos" Date: Tue, 1 Mar 2022 18:22:35 +0200 Subject: [PATCH 2/6] Energy readings in progress --- pyperformance/cli.py | 2 ++ pyperformance/run.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/pyperformance/cli.py b/pyperformance/cli.py index 95f78429..ae30a682 100644 --- a/pyperformance/cli.py +++ b/pyperformance/cli.py @@ -60,6 +60,8 @@ def parse_args(): cmd.add_argument("--append", metavar="FILENAME", help="Add runs to an existing file, or create it " "if it doesn't exist") + cmd.add_argument("--track-energy", action="store_true", + help="Track energy instead of wall clock time.") filter_opts(cmd) # show diff --git a/pyperformance/run.py b/pyperformance/run.py index 8e196547..caa93bab 100644 --- a/pyperformance/run.py +++ b/pyperformance/run.py @@ -192,5 +192,7 @@ def get_pyperf_opts(options): opts.append('--track-memory') if options.inherit_environ: opts.append('--inherit-environ=%s' % ','.join(options.inherit_environ)) + if options.track_energy: + opts.append('--track-energy') return opts From 3bddd89fd87ae52916c60b379cf22e8adfaa943c Mon Sep 17 00:00:00 2001 From: "Christos P. Lamprakos" Date: Fri, 4 Mar 2022 12:32:43 +0200 Subject: [PATCH 3/6] Updated requirements.txt so as to use local pyperf --- pyperformance/data-files/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyperformance/data-files/requirements.txt b/pyperformance/data-files/requirements.txt index f59bc323..c94d8fe5 100644 --- a/pyperformance/data-files/requirements.txt +++ b/pyperformance/data-files/requirements.txt @@ -10,7 +10,7 @@ psutil==5.8.0 # via -r requirements.in pyparsing==3.0.6 # via packaging -pyperf==2.3.0 +pyperf @ file:///home/cappadokes/code/pyperf # via -r requirements.in toml==0.10.2 # via -r requirements.in From a68c2e1d8e26453e9a222396dd69cef26c872b14 Mon Sep 17 00:00:00 2001 From: "Christos P. Lamprakos" Date: Thu, 17 Mar 2022 12:59:59 +0000 Subject: [PATCH 4/6] Append --inherit-environ behind the scenes if --track-energy is used --- pyperformance/run.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pyperformance/run.py b/pyperformance/run.py index caa93bab..ee3eddae 100644 --- a/pyperformance/run.py +++ b/pyperformance/run.py @@ -190,9 +190,24 @@ def get_pyperf_opts(options): opts.append('--affinity=%s' % options.affinity) if options.track_memory: opts.append('--track-memory') - if options.inherit_environ: + if options.inherit_environ or options.track_energy: + # In the track_energy case, pyperf will need + # a couple of env variables to work. We save + # the user from manual insertion of --inherit-environ. + if options.track_energy: + if options.inherit_environ is None: + options.inherit_environ = [] + from os import environ as curr_env + env = curr_env + try: + lib = env['LIBREADEN'] + f = env['ENFILE'] + options.inherit_environ.append('LIBREADEN') + options.inherit_environ.append('ENFILE') + except: + raise OSError('--track-energy needs LIBREADEN, ENFILE environment variables to work.') opts.append('--inherit-environ=%s' % ','.join(options.inherit_environ)) if options.track_energy: opts.append('--track-energy') - + return opts From e08458c3576c5cbe731e20849959555152971902 Mon Sep 17 00:00:00 2001 From: Christos Lamprakos Date: Mon, 28 Mar 2022 13:23:10 +0300 Subject: [PATCH 5/6] Added LD_LIBRARY_PATH to --inherit-environ when --track-energy is used --- pyperformance/run.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyperformance/run.py b/pyperformance/run.py index ee3eddae..2ef06ed0 100644 --- a/pyperformance/run.py +++ b/pyperformance/run.py @@ -202,8 +202,10 @@ def get_pyperf_opts(options): try: lib = env['LIBREADEN'] f = env['ENFILE'] + ld = env['LD_LIBRARY_PATH'] options.inherit_environ.append('LIBREADEN') options.inherit_environ.append('ENFILE') + options.inherit_environ.append('LD_LIBRARY_PATH') except: raise OSError('--track-energy needs LIBREADEN, ENFILE environment variables to work.') opts.append('--inherit-environ=%s' % ','.join(options.inherit_environ)) From 60574dad9585eb5622631502296bb8eae143cdfc Mon Sep 17 00:00:00 2001 From: Christos Lamprakos Date: Tue, 29 Mar 2022 11:13:33 +0300 Subject: [PATCH 6/6] Fixed READEN typo --- pyperformance/run.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyperformance/run.py b/pyperformance/run.py index 2ef06ed0..871ade01 100644 --- a/pyperformance/run.py +++ b/pyperformance/run.py @@ -200,14 +200,14 @@ def get_pyperf_opts(options): from os import environ as curr_env env = curr_env try: - lib = env['LIBREADEN'] + lib = env['READEN'] f = env['ENFILE'] ld = env['LD_LIBRARY_PATH'] - options.inherit_environ.append('LIBREADEN') + options.inherit_environ.append('READEN') options.inherit_environ.append('ENFILE') options.inherit_environ.append('LD_LIBRARY_PATH') except: - raise OSError('--track-energy needs LIBREADEN, ENFILE environment variables to work.') + raise OSError('--track-energy needs READEN, ENFILE environment variables to work.') opts.append('--inherit-environ=%s' % ','.join(options.inherit_environ)) if options.track_energy: opts.append('--track-energy')