Ceci est un mémo pour travailler tout en restant à la maison ou Starbucks en utilisant le notebook iPython, qui est une interface Web de Python. Je le mettrai à jour quand j'en aurai envie.
Vous pouvez à tout moment démarrer la recherche et le développement avec Starbucks en lançant notebook sur votre poste de travail. Veuillez consulter ici pour l'introduction.
c.IPKernelApp.pylab = 'inline'` `` est particulièrement important, afin que ce que vous dessinez avec matplotlib puisse être affiché sur votre notebook.
Créez un nouveau cahier pour chaque test afin de ne pas être confus. La magie de cellule suivante est utile pour le débogage.
`% time
`Mesurer le temps `% debug
`` Démarrer le débogueurUne fois que le programme s'arrête avec une erreur, exécutez ``% debug '' sur la cellule appropriée pour démarrer ipdb
Il existe plusieurs méthodes. Cette zone est également utile Je vais.
1 multiprocessing.Pool
Reportez-vous à cette zone
from multiprocessing import Pool
p = Pool(n_cores)
p.map(func, [arg list])
p.close()
Vous pouvez calculer en parallèle comme ceci. Il convient de noter que pendant que le calcul parallèle est en cours d'exécution![Kobito.1408940334.347506.png](https://qiita-image-store.s3.amazonaws.com/0/69/1461469f-0ba1-0986- 0431-7a8f0e745f23.png "kobito.1408940334.347506.png ") Si vous appuyez sur le bouton de suspension ou de redémarrage ici, le travailleur deviendra généralement un zombie. Dans ce cas, j'essaye de tout tuer avec `` pkill Python '', etc., puis je redémarre le notebook.
2 IPython.parallel
Étant donné qu'iPython lui-même dispose d'un cadre pour le calcul parallèle, c'est une façon de l'utiliser. Tout d'abord, lancez le notebook iPython, sélectionnez l'onglet Clusters dans le premier tableau de bord qui apparaît, puis Entrez ici le nombre de travailleurs souhaité dans # de moteurs et démarrez. Dans le programme, écrivez comme suit.
from IPython.parallel import Client
def test(x):
u'''
Fonctions calculées en parallèle
'''
return x **2
cli = Client()
dv = cli[:]
x = dv.map(test, range(100))
result = x.get()
Si vous souhaitez exécuter la même fonction plusieurs fois en parallèle tout en modifiant les arguments, les méthodes 1 et 2 sont efficaces, mais si vous souhaitez exécuter un grand programme en parallèle, il est plus facile de paralléliser par un traitement en arrière-plan avec un script shell. En d'autres termes, exécutons un script shell qui écrit plusieurs
python program.py arg1 arg2 ... & ''.
Vous pouvez également exécuter un script bash sur une cellule de notebook en utilisant la commande `%% bash
`` `, vous avez dit:" Je parlais de notebook iPython jusqu'à présent, mais c'est un shell après tout! " Je vais. Par exemple
Si vous changez un peu cela,
Vous pouvez facilement (?) Paralléliser comme ça. Si vous souhaitez utiliser des arguments de ligne de commande en Python, créez un bloc if (__ name__ == '__ main__'): `` `et lisez-le depuis`` sys.argv
.
Si vous avez un petit programme, vous pouvez l'écrire sur un ordinateur portable iPython, mais lorsque le programme devient compliqué, il est préférable d'en faire un fichier .py, vous devrez donc inévitablement plonger dans le poste de travail avec SSH. .. J'utilise Secure Shell ( lien ) ..
J'utilise Canopy . OpenCV est également pratique car il peut être inséré en un seul clic. Vous pouvez utiliser la commande enpkg
pour gérer les paquets depuis le terminal (<a href = "https://support.enthought.com/entries/22415022-Using-enpkg-to-update-Canopy-EPD" -packages "target =" _ blank "> lien ). Les utilisateurs de Mac peuvent être accros aux problèmes de trousseau, alors <a href = "http://stackoverflow.com/questions/14719731/keychain-issue-when-trying-to-set-up-enthought-enpkg-on -mac-os-x "target =" _ blank "> Vérifiez ici .
Recommended Posts