2016-07-21 6 views
0

現在、ipyparallelライブラリを使用して所有しているサーバのグループにリモートクラスタを設定しようとしています。私は、すべてのipcontrollers、ipengines、およびノー​​トブックの間で$ IPYTHONDIRを共有すると、すべてが接続して動作することになると考えましたが、これは現在の設定には当てはまりません。リモートipyparallelコントローラを備えたIPythonノートブック

私が達成しようとしているのは、コントローラに接続してクラスタコンピューティングリソースとして使用するために、ipコントローラとipenginesがクラスタに座っていることです。

現在、すべてのポートが開いていても、サーバーに直接アクセスでき、IPYTHONDIRが共有されているにもかかわらず、ノートブックをコントローラに接続できません。

ノートブックを開いてクラスタタブに移動すると、私のパラレルプロファイルが表示されますが、起動していません。 ipcontrollerとipenginesが既に起動していて、ノートブックからの接続を待っているので、どちらが奇妙です。

これはつまるところ:

  • それはipcontrollerとは別のサーバー上でノートブックを実行することは可能ですか?
  • 上記のことが可能な場合、ノートブックをクラスタに接続できないのはなぜですか?プロファイルでstartをクリックすると、単にローカルクラスタが作成されます。

ありがとう!

答えて

0

はいこれは、ノートブックのカーネルがipcontrollerと同じサーバー上で実行されている場合に可能です。ノートブック自体は、任意のブラウザから表示することができます。私はその機能を定期的に使用しています。

私がやったやり方は、サーバー上でipythonプロファイルを利用できるようにすることです。私の場合、それはWindowsサーバーで、プロファイルはc:\users\<user>\.ipython\に設定されています。この場合、プロファイルフォルダはprofile_my32bitclusterと呼ばれ、私はクライアントを作成していたときに、私が使用するプロファイルを指定:

from ipyparallel import Client 

rc = Client(profile='my32bitcluster') 
dview = rc[:] 

# Test it by pushing out a dataframe across some engines, modifying it 
# and returning the modified dataframes... 
df = pd.DataFrame(data={'x':[1,2,3,4,5], 'y':[1,4,9,16,25]}) 

dview.push({'df':df}) 

def myfunc(x): 
    import sys 
    import os 
    import pandas as pd 
    global df 
    df['z'] = df['x'] * x 
    return df 

results = dview.map_sync(myfunc, [2,3,4]) 

私はそれが役に立てば幸い。

関連する問題