Tspostat in python. Flexible and incremental
Samo Penic
2018-05-07 cf2846555661c5c9a54c4ef8d9ebaede66502523
Try in multiprocessing
1 files modified
30 ■■■■ changed files
poststat.py 30 ●●●● patch | view | raw | blame | history
poststat.py
@@ -3,7 +3,7 @@
import wrapper as ts
from glob import glob
import os
import multiprocessing
import django
def count_bonds_with_energy(blist):
@@ -104,6 +104,16 @@
        write_csv(os.path.join(directory,'tspoststat.csv'), csvdict)
        
def PostProcess(multiprocessing.Process):
    def __init__(self, dirlist):
        super(PostProcess, self).__init_
        self.dirlist=dirlist
    def run(self):
        for d in self.dirlist:
            poststat_directory(d)
if __name__=='__main__':
    #vesicle= ts.parseDump('timestep.vtu')
    #print(single_vtu_poststat(vesicle))
@@ -112,17 +122,21 @@
    #print(sorted(hist.items(), key=lambda x: int(x[0])))
    #ts.vesicle_free(vesicle)        
    #poststat_directory('/tmp/sim1/run0')
    NUM_PROCESSES=3
    os.chdir('/home/samo/trisurf-server')
    os.environ.setdefault("DJANGO_SETTINGS_MODULE","web_trisurf.settings")
    django.setup()
    from database import models
    objs=models.Run.objects.order_by('id').all()
    dirlist=[]
    for obj in objs:
    dirlist=[[]]
    for i,obj in enumerate(objs):
        cdir=os.path.join(obj.simulation.directory, obj.subdir)
        dirlist.append(cdir)
        dirlist[i%NUM_PROCESSES].append(cdir)
    print(dirlist)
    for d in dirlist:
        poststat_directory(d)
        print('directory d done!')
    pp=[]
    for i,d in enumerate(dirlist):
        j=Postprocess(d)
        pp.append(j)
        j.start()
    for i in pp:
        pp.join()