Skip to content

Simple Tuning

Kevin Huck edited this page Mar 6, 2023 · 1 revision

The following example will introduce APEX using a simple tuning policy.

APEX is integrated with Active Harmony and other search methods.

Source Code

The following exammple is a simple tuner that will autotune three long values to minimize a target value.

[kehuck1@mahti-login12 apex-tutorial]$ srun apex_exec --apex:tasktree ./build/bin/custom_tuning
  ___  ______ _______   __
 / _ \ | ___ \  ___\ \ / /
/ /_\ \| |_/ / |__  \ V /
|  _  ||  __/|  __| /   \
| | | || |   | |___/ /^\ \
\_| |_/\_|   \____/\/   \/
APEX Version: -62a039a-develop
Built on: 15:44:00 Mar  6 2023 (RelWithDebInfo)
C++ Language Standard version : 201402
GCC Compiler version : 11.2.0
Running custom tuning test
Tuning session 1 handle: 1
Tuning session 2 handle: 2
p1 = 3 p2 = 3 value = 40
x = 76 sv = 0.841471
p1 = 8 p2 = 4 value = 24
x = 26 sv = 0.649541
p1 = 4 p2 = 8 value = 72
x = 51 sv = -0.926185
p1 = 3 p2 = 3 value = 24
x = 26 sv = 0.756695
p1 = 5 p2 = 4 value = 24
x = 1 sv = -0.926185
p1 = 4 p2 = 5 value = 42
x = 26 sv = 0.841471
p1 = 3 p2 = 3 value = 30
x = 38 sv = -0.926185
p1 = 1 p2 = 3 value = 24
x = 26 sv = -0.118492
p1 = 2 p2 = 1 value = 4
x = 13 sv = -0.926185
p1 = 2 p2 = 3 value = 18
x = 26 sv = -0.447492
p1 = 1 p2 = 3 value = 14
x = 32 sv = -0.926185
p1 = 1 p2 = 2 value = 4
x = 26 sv = -0.586176
p1 = 0 p2 = 2 value = 6
x = 19 sv = -0.926185
p1 = 1 p2 = 3 value = -4
x = 26 sv = -0.93817
p1 = 0 p2 = 3 value = 4
x = 13 sv = -0.926185
p1 = 0 p2 = 3 value = -6
x = 26 sv = -0.447492
p1 = 0 p2 = 3 value = -6
x = 19 sv = -0.926185
p1 = 0 p2 = 3 value = -6
x = 13 sv = -0.93817
p1 = 0 p2 = 3 value = -6
x = 19 sv = -0.447492
Tuning has converged for session 1.
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.93817
p1 = 0 p2 = 3 value = -6
x = 26 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.926185
p1 = 0 p2 = 3 value = -6
x = 21 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.991586
p1 = 0 p2 = 3 value = -6
x = 24 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.982642
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
Tuning has converged for session 2.
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
p1 = 0 p2 = 3 value = -6
x = 22 sv = -0.999759
done.
Test passed.

Start Date/Time: 06/03/2023 21:49:09
Elapsed time: 0.0629032 seconds
Total processes detected: 1
HW Threads detected on rank 0: 256
Worker Threads observed on rank 0: 1
Available CPU time on rank 0: 0.0629032 seconds
Available CPU time on all ranks: 0.0629032 seconds

Counter                                              :  #samp |   mean  |  max
--------------------------------------------------------------------------------
                               1 Minute Load average :      1     1.10     1.10
                                      status:Threads :      1     2.00     2.00
                                    status:VmData kB :      1 1.06e+06 1.06e+06
                                     status:VmExe kB :      1    16.00    16.00
                                     status:VmHWM kB :      1 1.01e+04 1.01e+04
                                     status:VmLck kB :      1     0.00     0.00
                                     status:VmLib kB :      1 2.24e+04 2.24e+04
                                     status:VmPTE kB :      1   152.00   152.00
                                    status:VmPeak kB :      1 1.25e+06 1.25e+06
                                     status:VmPin kB :      1     0.00     0.00
                                     status:VmRSS kB :      1 1.01e+04 1.01e+04
                                    status:VmSize kB :      1 1.19e+06 1.19e+06
                                     status:VmStk kB :      1   148.00   148.00
                                    status:VmSwap kB :      1     0.00     0.00
                   status:nonvoluntary_ctxt_switches :      1     1.00     1.00
                      status:voluntary_ctxt_switches :      1    31.00    31.00
--------------------------------------------------------------------------------

CPU Timers                                           : #calls|   mean |   total
--------------------------------------------------------------------------------
                                           APEX MAIN :      1     0.06     0.06
          int apex_preload_main(int, char**, char**) :      1     0.06     0.06
--------------------------------------------------------------------------------


--------------------------------------------------------------------------------
                                        Total timers : 1
Writing: .//apex_tasktree.csv