import os
if 'OMP_NUM_THREADS' in os.environ:
    del os.environ['OMP_NUM_THREADS']
from lazylinop import LazyLinOp
from pyfaust.demo import get_data_dirpath
from os.path import join
from mpi4py import MPI
from scipy.io import loadmat
import numpy as np
import sys
from timeit import timeit
from time import time


if '__main__' == __name__:
    n = 10000
    shape = (81930, 2040)
    np.random.seed(42)
    M = np.random.rand(*shape)
    np.savez('M.npz', M)
    if 'vec' in sys.argv:
        v = np.ones((shape[1]))*2
    else:
        v = np.ones((shape[1], 64))*2
    t1 = time()
    for _ in range(n):
        res = M@v
    tnp = time() - t1
    print("numpy time:", tnp)
    print("r:", M@v)
    np.savez('res.npz', res=res)
