b の行列積を c に代入する。 import random a = [[random.random()] * N for i in range(N)] b = [[random.random()] * N for i in range(N)] c = [[0] * N for i in range(N)]
: 1.8[s] • NumPy を使う場合 N=100 : 0.003[s] N=200 : 0.007[s] for i in range(N): for j in range(N): for k in range(N): c[i][j] = a[i][k] * b[k][j] import numpy as np c = np.dot(a, b)
Executor Process 内で上記の状況になると,デッドロック状態になってしまう。 • Executor Process の数を自動的に増減できるようにする。 – ジョブ内からジョブを投入しようとしたとき,一定時間以上 Executor Process の空き が見つからなければ,Executor Process を自動的に増加させてそれを利用する。 – 増加させた Executor Process は不要になったタイミングで破棄する。
module_list: Set = None): import inspect if not hasattr(module_instance, '__file__'): return module_list if module_list is None: module_list = {module_instance} member_infos = inspect.getmembers(module_instance, lambda m: inspect.ismodule(m) or inspect.isclass(m) or inspect.ismethod(m)) for info in member_infos: # Module Instance depend_module: Optional[ModuleType] = inspect.getmodule(info[1]) if depend_module is None: continue # if depend_module in module_list: continue # if not include_system: module_file = getattr(depend_module, '__file__', None) if module_file is None: continue if 'python37-64' in module_file: continue # import module_list.add(depend_module) module_list = get_imported_module_list(depend_module, include_system, module_list) return module_list