Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge likwid_bench_auto and machinemodel #45

Open
cod3monk opened this issue Aug 29, 2017 · 1 comment
Open

Merge likwid_bench_auto and machinemodel #45

cod3monk opened this issue Aug 29, 2017 · 1 comment

Comments

@cod3monk
Copy link
Member

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

@cod3monk
Copy link
Member Author

cod3monk commented May 3, 2019

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant