From ada04a42528c29ea86e48f0a19cb8723c8bc0a66 Mon Sep 17 00:00:00 2001 From: David Luevano <55825613+luevano@users.noreply.github.com> Date: Thu, 12 Dec 2019 20:49:41 -0700 Subject: First working parallelism --- main.py | 97 +++++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 33 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 734069920..9d7d3a645 100644 --- a/main.py +++ b/main.py @@ -21,40 +21,71 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ import time -from misc import printc +from multiprocessing import Process, Pipe # import matplotlib.pyplot as plt +from misc import printc from read_qm7_data import read_qm7_data from c_matrix import c_matrix_multiple from lj_matrix import lj_matrix_multiple -from do_ml import do_ml - - -# Initialization time. -init_time = time.perf_counter() - -# Data reading. -zi_data, molecules, nuclear_charge, energy_pbe0, energy_delta =\ - read_qm7_data() - -# Matrices calculation. -cm_data = c_matrix_multiple(molecules, nuclear_charge, as_eig=True) -ljm_data = lj_matrix_multiple(molecules, nuclear_charge, as_eig=True) - -# ML calculation. -do_ml(cm_data, - energy_pbe0, - 1000, - test_size=100, - sigma=1000.0, - desc_type='CM') -do_ml(ljm_data, - energy_pbe0, - 1000, - test_size=100, - sigma=1000.0, - desc_type='L-JM') - -# End of program -end_time = time.perf_counter() -printc('Program took {:.4f} seconds of runtime.'.format(end_time - init_time), - 'CYAN') +# from do_ml import do_ml + + +def main(): + # Initialization time. + init_time = time.perf_counter() + procs = [] + pipes = [] + + # Data reading. + zi_data, molecules, nuclear_charge, energy_pbe0, energy_delta =\ + read_qm7_data() + + # Matrices calculation. + cm_recv, cm_send = Pipe() + pipes.append(cm_send) + p1 = Process(target=c_matrix_multiple, + args=(molecules, nuclear_charge, cm_send)) + procs.append(p1) + p1.start() + + ljm_recv, ljm_send = Pipe() + pipes.append(ljm_send) + p2 = Process(target=lj_matrix_multiple, + args=(molecules, nuclear_charge, ljm_send)) + procs.append(p2) + p2.start() + + cm_data = cm_recv.recv() + ljm_data = ljm_recv.recv() + + for pipe, proc in zip(pipes, procs): + pipe.close() + proc.join() + + print(type(cm_data), cm_data[0]) + print(type(ljm_data), ljm_data[0]) + + """ + # ML calculation. + do_ml(cm_data, + energy_pbe0, + 1000, + test_size=100, + sigma=1000.0, + desc_type='CM') + do_ml(ljm_data, + energy_pbe0, + 1000, + test_size=100, + sigma=1000.0, + desc_type='L-JM') + """ + + # End of program + end_time = time.perf_counter() + printc('Program took {:.4f} seconds.'.format(end_time - init_time), + 'CYAN') + + +if __name__ == '__main__': + main() -- cgit v1.2.3-54-g00ecf