32 lines
885 B
Python
32 lines
885 B
Python
import os
|
|
import timeit
|
|
import numpy as np
|
|
from datetime import datetime
|
|
import time
|
|
|
|
# Timestamp that will be put in the file name
|
|
timestamp = datetime.now().strftime("%H%M%S%f")
|
|
|
|
# Get the environment variable for threads
|
|
threads = os.getenv('OMP_NUM_THREADS')
|
|
|
|
# A relatively large matrix to work on
|
|
n = 5_000
|
|
x = np.random.random(size=(n, n))
|
|
|
|
print(f"We are executed with OMP_NUM_THREADS={threads} for {n=}")
|
|
|
|
# Measure the time required for matrix multiplication
|
|
start_time = time.time()
|
|
y = x @ x # The heavy compute
|
|
elapsed_time = time.time() - start_time
|
|
|
|
print(f'Time used for matrix multiplication: {elapsed_time:.2f} s')
|
|
|
|
# Check if timings folder exists
|
|
if not os.path.isdir('timings/'): os.mkdir('timings')
|
|
|
|
# IO: Save the timing to a unique txt file
|
|
with open(f'timings/{threads}_threads_t{timestamp}.txt', 'w') as file:
|
|
file.write(f'{threads},{elapsed_time:.6f}')
|