kerncraft icon indicating copy to clipboard operation
kerncraft copied to clipboard

Merge likwid_bench_auto and machinemodel

Open cod3monk opened this issue 8 years ago • 1 comments

Allow loading of machine model from current machine, as well as from file.

cod3monk avatar Aug 29 '17 11:08 cod3monk

The problem lies with the symbolic comparison of expressions. We will need a comparison function capable of comparing two sympy expressions, assuming that any non-loop-counter variables are of same size, larger than indices and positive:

imprt sympy
M = sympy.Symbol(name='M', positive=True, integer=True)
N = sympy.Symbol(name='N', positive=True, integer=True)
k = sympy.Symbol(name='k', positive=True, integer=True)
i = sympy.Symbol(name='i', positive=True, integer=True)
assert compare(M*M, M) > 0, "M*M > M"
assert compare(2*M, M) > 0, "2*M > M"
assert compare(N*M, M) > 0, "N*M > M"
assert compare(N*(k-1), N*k) < 0, "N*(k-1) < N*k"
assert compare(N*M*i+N*(k-1), N*M*i+N*k) < 0, "N*M*i+N*(k-1), N*M*i+N*k"
assert compare(N*M*(i+1) + N*(k-1), N*M*i+N*k) > 0, "N*M*(i+1)+N*(k-1) > N*M*i+N*k"
try:
    compare(N*(i-1), N*k) > 0
    assert False, "N*(i-1) uncomparable with N*k"
except ValueError:
    pass
try:
    compare(M*k, N*(k+1))
    assert False, "M*k uncomparable with N*(k+1)"
except ValueError:
    pass

cod3monk avatar May 03 '19 13:05 cod3monk