Esempio n. 1
0
    def __init__(self, input, db='ram', chains=2):
        try:
            mec = client.MultiEngineClient()
        except:
            p = subprocess.Popen('ipcluster -n %d'%proc, shell=True)
            p.wait()
            mec = client.MultiEngineClient()

        # Check everything is alright.
        nproc = len(mec.get_ids())
        assert chains <= nproc


        Sampler.__init__(self, input, db=db)

        # Import the individual models in each process
        #mec.pushModule(input)

        proc = range(chains)

        try:
            mec.execute('import %s as input'%input.__name__, proc)
        except:
            mec.execute( 'import site' , proc)
            mec.execute( 'site.addsitedir( ' + `os.getcwd()` + ' )' , proc)
            mec.execute( 'import %s as input; reload(input)'%input.__name__, proc)

        # Instantiate Sampler instances in each process
        mec.execute('from pymc import MCMC', proc)
        #mec.execute('from pymc.database.parallel import Database')
        #for i in range(nproc):
        #    mec.execute(i, 'db = Database(%d)'%i)
        mec.execute("S = MCMC(input, db='txt')", proc)

        self.mec = mec
        self.proc = proc
Esempio n. 2
0
    def __init__(self, input, db='ram', chains=2):
        try:
            mec = client.MultiEngineClient()
        except:
            p = subprocess.Popen('ipcluster -n %d' % proc, shell=True)
            p.wait()
            mec = client.MultiEngineClient()

        # Check everything is alright.
        nproc = len(mec.get_ids())
        assert chains <= nproc

        Sampler.__init__(self, input, db=db)

        # Import the individual models in each process
        #mec.pushModule(input)

        proc = range(chains)

        try:
            mec.execute('import %s as input' % input.__name__, proc)
        except:
            mec.execute('import site', proc)
            mec.execute('site.addsitedir( ' + ` os.getcwd() ` + ' )', proc)
            mec.execute('import %s as input; reload(input)' % input.__name__,
                        proc)

        # Instantiate Sampler instances in each process
        mec.execute('from pymc import MCMC', proc)
        #mec.execute('from pymc.database.parallel import Database')
        #for i in range(nproc):
        #    mec.execute(i, 'db = Database(%d)'%i)
        mec.execute("S = MCMC(input, db='txt')", proc)

        self.mec = mec
        self.proc = proc