Exemple #1
0
    def __init__(self, **kw):

        index = kw.get('index')  #simulation index
        #         path_code=kw.get('path_code')
        pr = kw.get('path_results')

        #        self.local_threads=10

        self.p_subp_out = pr + "/std/subp/out{0:0>4}".format(index)
        self.p_subp_err = pr + '/std/subp/err{0:0>4}'.format(index)
        '''
        self.p_sbatch_out=pr+"/std/sbatch/out{0:0>4}".format(index)
        self.p_sbatch_err=pr+'/std/sbatch/err{0:0>4}'.format(index)
	'''
        self.p_tee_out = pr + '/std/tee/out{0:0>4}'.format(index)

        self.p_par = pr + '/params/run{0:0>4}.pkl'.format(index)
        self.p_script = dr.HOME_CODE + '/core/toolbox/parallel_excecution/simulation.py'
        self.p_bash0 = dr.HOME_CODE + '/2ndManuscript/20paramsfree/checkRelSWAACT/jc1NoEqjc2/jobb0_jyotika.sh'
        self.p_bash = pr + '/jobbs/jobb_{0:0>4}.sh'.format(index)
        self.p_qsubout = '/users/bahuguna/2ndManuscript/20paramsfree/checkRelSWAACT/jc1NoEqjc2/'

        #        data_to_disk.mkdir('/'.join(self.p_subp_out.split('/')[0:-1]))
        #        data_to_disk.mkdir('/'.join(self.p_sbatch_out.split('/')[0:-1]))
        data_to_disk.mkdir('/'.join(self.p_tee_out.split('/')[0:-1]))

        for key, value in kw.items():
            self.__dict__[key] = value
        self.kw = kw
Exemple #2
0
    def __init__(self, **kw):

        index = kw.get('index')  #simulation index
        #         path_code=kw.get('path_code')
        pr = kw.get('path_results')
        self.num_mpi_task = kw.get('num-mpi-task')
        #         self.local_threads=10

        self.p_subp_out = pr + "/std/subp/out{0:0>4}".format(index)
        self.p_subp_err = pr + '/std/subp/err{0:0>4}'.format(index)
        self.p_par = pr + '/params/run{0:0>4}.pkl'.format(index)
        self.p_script = dr.HOME_CODE + '/core/toolbox/parallel_excecution/simulation.py'

        data_to_disk.mkdir('/'.join(self.p_subp_out.split('/')[0:-1]))

        for key, value in kw.items():
            self.__dict__[key] = value
Exemple #3
0
    def setUp(self):

        home=default_params.HOME
        code=home+'/git/bgmodel/core/toolbox/test_milner_hybrid_mpi'
        result=home+'/results/unittest/test_milner_hybrid_mpi/main'
        path_bash=code+'/jobb.sh'
        path_bash0=code+'/jobb0.sh'
        path_err=result+'/jobb_err'
        path_out=result+'/jobb_out'
        path_simu=code+'/simulation.py'
        path_data_nest=result+'/nest'
        path_data_sd=result+'/spike_dic'
        path_delme=result+'/delme_simulation'
        
        mkdir(result)
        
        cores=40*2 #multiple of 40
        local_threads=10

        d={'cores_hosting_OpenMP_threads':40/local_threads,
           'memory_per_node':int(819*local_threads), 
           'num-mpi-task':cores/local_threads,
           'num-of-nodes':cores/40,
           'num-mpi-tasks-per-node':40/local_threads,
           'num-threads-per-mpi-process':local_threads,
           'output':path_delme,
           'path_nest':path_data_nest,
           'script':path_simu,
            } 
        
#         if my_socket.determine_host()=='milner_login':
        fun='sbatch'
#             call='aprun -n 2 -N 1 -d 20 python {SCRIPT} 2>&1 | tee delme_simulation'
        call=('aprun -n {num-mpi-task} '
              +'-N {num-mpi-tasks-per-node} '
              +'-d {num-threads-per-mpi-process} '
              +'-m {memory_per_node} '
              +'python {script} {num-threads-per-mpi-process} {path_nest} 2>&1 | tee {output}')
        call=call.format(**d)
        print call
#         else:
#             fun='batch'
#             call='mpirun -np 2 python {script} 2>&1 | tee {output}'
        
        call=call.format(**d)
        
        on_milner=int(my_socket.determine_host() == 'milner_login')       
        
        k={
            'path_err':path_err,
            'path_out':path_out,
            'call':call,
            'home':home,
            'on_milner':on_milner}
        k.update(d)
        

        make_bash_script(path_bash0, 
                         path_bash,
                         **k)
        
#         if my_socket.determine_host()=='milner_login':
        args_call=[fun, 
                   path_bash
                   ]
#         else:
#             args_call=[
#                        path_bash
#                        ]
        self.path_err=path_err
        self.path_out=path_out
        self.path_simu=path_simu
        self.path_data_nest=path_data_nest
        self.path_data_sd=path_data_sd
        self.path_delme=path_delme
        
        self.args_call=args_call
Exemple #4
0
        datadir = home + '/nest'
        datadir_sd = home + '/spike_dic'

    data_path = '/'.join(datadir.split('/')[0:-1])
    for path in [datadir, datadir_sd]:
        if os.path.isdir(path):
            if comm.rank() == 0:
                shutil.rmtree(path)

    for path in [datadir_sd + '.pkl', datadir_sd + '.svg']:
        if os.path.isfile(path):
            if comm.rank() == 0:
                os.remove(path)

    if comm.rank() == 0:
        data_to_disk.mkdir(datadir)

    comm.barrier()
    print comm.obj

    my_nest.SetKernelStatus({'data_path': datadir, 'overwrite_files': True})

    g = sim_group(10, 1, t)
    ss = g.get_spike_signal()
    fr = ss.get_firing_rate()
    mr = ss.get_mean_rate()

    sd = data_to_disk.Storage_dic.load(datadir_sd)
    sd_figs = data_to_disk.Storage_dic.load(datadir_sd)
    sd.save_dic({'fr': fr, 'mr': mr})
Exemple #5
0
        datadir=home+'/nest'
        datadir_sd=home+'/spike_dic'

    data_path='/'.join(datadir.split('/')[0:-1])
    for path in [datadir, datadir_sd]:
        if os.path.isdir(path):
            if comm.rank()==0:
                shutil.rmtree(path)
    
    for path in [datadir_sd+'.pkl', datadir_sd+'.svg']:
        if os.path.isfile(path):
            if comm.rank()==0:
                os.remove(path)
    
    if comm.rank()==0:
        data_to_disk.mkdir(datadir)
    
    comm.barrier()
    print comm.obj
    
    my_nest.SetKernelStatus({'data_path':datadir,
                             'overwrite_files': True})
    
    g=sim_group(10, 1, t)
    ss=g.get_spike_signal()
    fr=ss.get_firing_rate()
    mr=ss.get_mean_rate()
    
    
    
    sd=data_to_disk.Storage_dic.load(datadir_sd)
with Barrier():
    if comm.rank()==0:   
        out=pickle_load(fileName, all_mpi=True) 
    else:
        out=None


out=comm.bcast(out, root=0)
sim_time, args, kwargs=out
d={'sd':{'active':True,
           'params':{'to_memory':False, 
                     'to_file':True}}}

kwargs=misc.dict_update(kwargs, d)

mkdir(data_path+'nest/')
my_nest.ResetKernel(display=False, 
                    data_path=data_path+'nest/',
                    **{'threads_local': np_local})
import pprint
pp=pprint.pprint
d=my_nest.GetKernelStatus()
if comm.rank()==0:
    print comm.size()
    pp(d)
    import threading
    print threading.active_count()

# comm.obj.
my_nest.SetKernelStatus({'overwrite_files':True,})
g=sim_group(sim_time, *args, **kwargs)
@author: mikael
'''
import numpy
import pickle
import sys

from toolbox.data_to_disk import mkdir
from toolbox.my_nest import collect_spikes_mpi
from toolbox.parallelization import comm
print sys.argv
fileName, = sys.argv[1:]

fileName += 'data'
s, e = numpy.ones(2) * comm.rank(), numpy.ones(2) * comm.rank() + 1

s, e = collect_spikes_mpi(s, e)

mkdir('/'.join(fileName.split('/')[0:-1]))

if comm.rank() == 0:

    print 'File name'
    print fileName

    if 4 < len(fileName) and fileName[-4:] != '.pkl':
        fileName = fileName + '.pkl'
        f = open(fileName, 'wb')  #open in binary mode

    pickle.dump([s, e], f, -1)
    f.close()
import pickle
import sys

from toolbox.data_to_disk import mkdir
from toolbox.my_nest import collect_spikes_mpi
from toolbox.parallelization import comm
print sys.argv
fileName, =sys.argv[1:]

fileName+='data'
s,e=numpy.ones(2)*comm.rank(),numpy.ones(2)*comm.rank()+1


s, e= collect_spikes_mpi(s, e)

mkdir('/'.join(fileName.split('/')[0:-1]))  

if comm.rank()==0:
    
    print 'File name'
    print fileName
    
    if 4<len(fileName) and fileName[-4:]!='.pkl':
        fileName=fileName+'.pkl'
        f=open(fileName, 'wb') #open in binary mode
         
    pickle.dump([s,e], f, -1)
    f.close()