mima_ghost_busters_performance
ΒΆ
A script to test the performance of ghostbusters for MIMA.
The first version (2019-12-02) of ghost busters is taking ~30 sec for a single 3-D matrix processing in MacMini 2018.
""" A script to test the performance of ghostbusters for MIMA.
The first version (2019-12-02) of ghost busters is taking ~30 sec for a single 3-D matrix processing in MacMini 2018.
"""
import time
import datetime
import random
from irfpy.mima import scidata_util, rawdata
import pickle
import logging
logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
def make_dataset(filename):
t0 = datetime.datetime(2006, 8, 10)
t1 = datetime.datetime(2018, 12, 5)
delta = t1 - t0
delta_s = delta.total_seconds()
logger.debug(f'{delta_s}')
dc = rawdata.DataCenterCount3d()
with open(filename, 'wb') as fp:
for i in range(10):
dt = int(random.random() * delta_s)
t = t0 + datetime.timedelta(seconds=dt)
# Loading 3D data
t, d = dc.nearest(t)
pickle.dump(t, fp)
pickle.dump(d, fp)
def ghost_buster(t, d):
logger.debug(f'Time = {t:%FT%T}')
t_start = time.time()
print(f'Total before = {d.matrix.sum()}')
scidata_util.ghost_reduction_rule_based_3d_rev1(d)
print(f'Total after = {d.matrix.sum()}')
t_stop = time.time()
t_ellapsed = t_stop - t_start
print(f'Time ellapsed = {t_ellapsed} s')
def main():
import os
filename = 'mima_ghost_busters_performance_samples.pickle'
if not os.path.exists(filename):
make_dataset(filename)
n = 0
maxn = 10
with open(filename, 'rb') as fp:
while n < maxn:
t = pickle.load(fp)
d = pickle.load(fp)
ghost_buster(t, d)
n = n + 1
if __name__ == "__main__":
main()