Parallelisierung von PyMC

8

Könnte jemand allgemeine Anweisungen geben, wie man den PyMC MCMC -Code parallelisieren kann? Ich versuche, LASSO Regression nach dem Beispiel hier . Ich habe irgendwo gelesen, dass paralleles Sampling standardmäßig ausgeführt wird, aber muss ich noch etwas wie Parallel Python verwenden, um es zum Laufen zu bringen?

Hier ist ein Referenzcode, den ich gerne auf meinem Rechner parallelisieren könnte.

%Vor%     
cmlakhan 07.05.2014, 15:03
quelle

2 Antworten

9

Es sieht so aus, als ob Sie PyMC2 verwenden, und soweit ich weiß, müssen Sie einen Python-Ansatz für die parallele Berechnung verwenden, wie IPython.parallel . Es gibt viele Möglichkeiten, dies zu tun, aber alle, die ich kenne, sind ein bisschen kompliziert. Hier ist ein Beispiel für eines, das PyMC2, IPCluster und Wakari verwendet.

In PyMC3 ist paralleles Sampling in der Methode psample implementiert, aber Ihr Referenzcode muss auf das PyMC3-Format aktualisiert werden:

%Vor%     
Abraham D Flaxman 19.05.2014, 12:05
quelle
8

PYMC3 hat psample in sample eingefügt.

Um parallel zu arbeiten, setzen Sie den Parameter njobs > 1 .

Die Verwendung für die Funktion pymc.sample ist:

sample(draws, step, start=None, trace=None, chain=0, njobs=1, tune=None, progressbar=True, model=None, random_seed=None) Hinweis: Wenn Sie njobs=None festlegen, wird standardmäßig "Anzahl der CPUs - 2" angezeigt.

Ich hoffe, das hilft.

    
closedloop 16.10.2014 17:28
quelle