summaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
authorDavid Luevano <55825613+luevano@users.noreply.github.com>2019-12-12 20:49:41 -0700
committerDavid Luevano <55825613+luevano@users.noreply.github.com>2019-12-12 20:49:41 -0700
commitada04a42528c29ea86e48f0a19cb8723c8bc0a66 (patch)
tree4c72d4aaec333f34cb0e8b699e190583b3fd910b /main.py
parent4c1c9c0e6c74f51c2557fb2ef2d236321b62f43a (diff)
First working parallelism
Diffstat (limited to 'main.py')
-rw-r--r--main.py97
1 files changed, 64 insertions, 33 deletions
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()