問題タブ [starcluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - Rでの並列処理のためにAWSで雪(および降雪)を使用する
以前の同様のSOの質問に関連して、並列コンピューティングにAWSでsnow/snowfallを使用してみました。
私がしたことは:
- 関数では、次のようなパラメータ
sfInit()
にパブリックDNSを提供しましたsocketHosts
sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- 返されたエラーは
Permission denied (publickey)
- 次に、http://www.imbi.uni-freiburg.de/parallel/の「PasswordlessSecure Shell(SSH)login」セクションの指示に従いました(正しく推測します!)。
- AWSで作成した.pemファイルのコンテンツを、マスターAWSインスタンスから、またマスターAWSインスタンスにも接続するAWSインスタンスの〜/ .ssh/authorized_keysにキャットします。
私が見逃しているものはありますか?ユーザーがAWSでの雪の使用に関する経験を共有できれば非常にありがたいです。
ご提案ありがとうございます。
更新:私は自分の特定の問題に対して見つけた解決策を更新したかっただけです:
- StarClusterを使用してAWSクラスターをセットアップしました:StarCluster
snowfall
クラスターのすべてのノードにインストールされたパッケージ- マスターノードから次のコマンドを発行しました
hostslist <- list("ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com","ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com")
sfInit(parallel=TRUE, cpus=2, type="SOCK",socketHosts=hostslist)
l <- sfLapply(1:2,function(x)system("ifconfig",intern=T))
lapply(l,function(x)x[2])
sfStop()
- IP情報により、AWSノードが利用されていることが確認されました
python - 科学的なPythonアルゴリズムをAmazonec2にデプロイする
いくつかのCコードを呼び出し、numpy、scipy、および多くの地理分析モジュールを使用するPython科学モデルがあります。EC2にデプロイしたいのですが、EC2についてはまだよくわかりません。
StarCluster AMIから派生したAMIをセットアップした後、StarClusterパッケージを使用してスタックをデプロイできることを確認しました。これらにはすでにnumpyとscipyとipythonがあるので、私がしなければならないのは地理モジュールを追加することだけです。
私の計画は、顧客のマシンで実行され、顧客の入力が私のモデルに対して有効であることを確認するスタンドアロンGUIを作成することでした。次に、スタンドアロンGUIは、最大約10GBのzip形式のアーカイブをFTPの場所に送信します。次に、EC2で実行する私のWebページにサインインし、実行プロパティ(インスタンスの数、モデルの実行数)を構成します。そのWebページは、指定したサイズのクラスターで顧客の仕事を実行するスクリプトを開始します。ポストプロセッサはモデルの出力を処理し、結果のWebページとグラフを書き込みます。これらのWebページとグラフは、最初はパスワードで保護されており、顧客が閲覧できるようになっています。私のモデルの実行は、5分から3時間かかる可能性のある個々の反復で構成されています。
このモデルの理想的なセットアップについて誰かがアドバイスを提供できますか?科学的な部分は理解できると思いますが、Webインターフェイスを実行するための開始点がわかりません...
ありがとう
python - IPython.parallel名前空間
IPython.parallelを使用して関数を並列化したいのですが、IPythonシェルで関数を定義すると、問題なく機能します。
ただし、モジュールで定義してインポートを使用すると、次のようになります。
さらに、Python 2.7.2 / IPython 0.12を実行しているローカルシステムでは正常に動作しますが、最新のStarclusterUbuntuAMIを使用しているPython2.7.2+ /IPython0.12ではクラッシュします。
ここで何が起こっているのですか?
更新:githubからIPython 0.13.devバージョンをインストールしましたが、動作するようになりました。
python - StarCluster AMI を IPython 0.13 で動作させるにはどうすればよいですか?
2 つの異なる StarCluster AMI (デフォルトの 64 ビット Ubuntu 11.10 と QIIME 1.5 イメージ) で IPython をアップグレードしてみました。いずれの場合も、クラスターを起動すると、初期化スクリプトが「Waiting for JSON connector file...」でハングします。インスタンスにログインしたところ、ipcluster デーモンが実行されていたにもかかわらず、JSON ファイルが profile_default/security に書き込まれませんでした。
これは、IPython 0.12 と 0.13 がコネクタ ファイルを配置する場所の違いでしょうか? それとも、更新された ipcluster が何らかの理由でハングするのでしょうか? 意味のあるログがないように見えるので、何が起こっているのかを理解する方法がわかりません. 最新の IPython を使用するように StarCluster AMI をアップグレードした人はいますか? もしそうなら、どのようにしましたか?
hadoop - クラウドでの小さな関数の並列処理
私は数百万/十億 (10^9) のデータ入力セットを処理する必要があります。それらは静かで小さく、1kB 未満です。また、処理には約 1 秒かかります。
Apache Hadoop、Map Reduce、StarCluster について多くのことを読みました。しかし、それを処理するための最も効率的で最速の方法が何であるかわかりませんか?
Amazon EC2 などのクラウドサービスの利用を考えています。
python - AWSでstarclusterとipythonを使用したクラスターコンピューティング
AWSでクラスターコンピューティングを試してみようとしています。私はこれにまったく慣れておらず、いくつかの問題があります。http://star.mit.edu/cluster/docs/latest/plugins/ipython.html#using-the-ipython-clusterにあるチュートリアルに従おうとしています。私はstarclusterを使用して、次のクラスターインスタンスを開始します。
すべてが期待どおりに表示され、ipythonプラグインが読み込まれたことが示されます。次に、チュートリアルに示されているように、次のコマンドを実行しようとします。
ただし、接続は失敗し、教えてくれます
を使用してログインできます
そのため、マスターにログインしたチュートリアルを続行しようとしましたが、クライアントを作成しようとすると、次のエラーが発生します。
私が見た唯一の異常なことは、クラスターが起動しているときにこれが表示されたことです。
何かご意見は?
architecture - EC2 でクラスターを設計する正しい方法
私は、「1 つのマスター - 複数のスレーブ」方式で編成された、EC2 のクラスターで実行する必要があるオープンソース ツールに取り組んでいます。物事を正しく整理する方法、最もシンプルでありながら信頼できる方法についてアドバイスが必要です。
基本的に必要なのは、マスター インスタンス (ユーザーが手動で実行する) で実行され、次のことを行うコードです。
a)Nスレーブインスタンスを実行します(Nはユーザーからのものです)
b) 各インスタンスが起動して実行されたら、SSH で接続して何かを開始します。
c) スレーブ インスタンスが生きていることを追跡する (単純に ping を実行するなど)
d) スレーブ インスタンスが失敗した場合 - 終了していることを確認し、別のインスタンスを実行して手順 b) を繰り返します。
e) ユーザーからのシグナルにより - スレーブインスタンスをシャットダウンします。
これはすべて非常に単純で簡単に見えますが、いくつか質問があります。
1) すぐに使えるソリューション。最初にZookeeperを見てみましたが、その複雑さに怯えていました。私が必要とするような単純なものにはやり過ぎのようです。私が見つけたもう1つのことはStarClusterです。これはPythonにもあります(私のツールもPythonにあります)が、必要なこと(追跡、インスタンスの再実行)を行うかどうかはわかりません。私の質問は、私が知らない単純なツール、ライブラリ、フレームワークはありますか?
2)別の方法は、自分で実装することです。ここでの質問は次のとおりです。私の問題に、私が気付いていない落とし穴はありますか? それはすべて単純に見えます: API へのいくつかの呼び出しといくつかの定期的な ping ですが、ここには何も表示されない可能性があるため、既に作成されたツールを使用するのが本当に正しいでしょうか?
3) すべて自分でコーディングする場合の問題は、CloudWatch を使用するかどうかです。内部計算クラスタの管理に本当に違いがあるのでしょうか、それとも高負荷サイトなどを支援するためだけに優れているのでしょうか?
4) 私の単純なアーキテクチャには、マスター ノードの障害に対する保護がありません。ユーザーはそれを実行し、Web インターフェイス経由で接続してクラスターを実行しますが、マスター ノードに障害が発生すると、すべてが壊れます。スレーブは、マスター ノードの存在を確認し、マスター ノードに障害が発生した場合に自身を終了できます。これにより、ヘッドレス実行のお金のかかるクラスターからの保護が追加されますが、グレースフル リスタートの問題は解決しません。これを解決するには?
5) このプロジェクトのコーディングを開始する前に知っておくべき重要な資料や重要な資料はありますか?
前もって感謝します!
python - すべてのクラスター コンピューティング ライブラリは starcluster と互換性がありますか?
Amazon EC2 で高度にスレッド化されたアプリケーションを実行しています。このアプリケーションを EC2 上のクラスターに変換します。クラスターの管理が簡単なので、これには starcluster を使用したいと思います。
ただし、クラスター/分散コンピューティングは初めてです。グーグルで調べたところ、クラスター コンピューティング用の Python ライブラリの次のリストが見つかりました。
http://wiki.python.org/moin/ParallelProcessing (クラスター コンピューティングのセクションを参照)
すべてのライブラリが starcluster で動作するかどうかを知りたいです。アプリケーションを starcluster で動作させたいのですが、ライブラリを選択する際に依存関係などに留意する必要があることはありますか?
python - StarCluster / qsub / EC2を動的にスケーリングして、複数のノード間で並列ジョブを実行する方法
Startcluster / qsub / grid engineを使用して並列ジョブを実行するのは初めてで、同じことに関する他のいくつかの投稿を読んでみました。特定の要件に合わせてスケーラブルなソリューションを構築する方法がまだわかりません。同じことを進める前に、もう少し提案を取り入れたいと思います。
これが私の要件です:
私は巨大なtarファイルを持っています[〜40-50 GB、最大100GBになる可能性があります]----->ここでできることはあまりありません。私はその巨大な単一のtarファイルを入力として受け入れました。
tarを解凍して解凍する必要があります----->tarxvftarfilename.tar|を実行します。pbzip -dを並列にして、同じものを解凍して解凍します。
この解凍の出力は、たとえば数十万ファイル、約50万ファイルです。
この非圧縮ファイルは処理する必要があります。すべてのファイルを取り込んで処理し、5つの異なるファイルを出力できるモジュラーコードがあります。
Tarファイル-----並列非圧縮--->非圧縮ファイル-----並列処理--->処理されたファイルごとに5つの出力ファイル
私は現在、16コアで実行される並列Pythonスクリプトを持っています。16GBのメモリは、この非圧縮ファイルのリストを取り込んで、同じものを並列処理します。
問題は、どのようにシームレスにスケーリングするかです。たとえば、コードが10時間実行されていると言っていて、それに8コアマシンをもう1つ追加したい場合、プロセッサの数を事前に知っている必要があるため、並列Pythonでそれを行うことはできません。
同時に、現在のクラスターに動的にノードを追加する場合、データのアクセス可能性と読み取り/書き込み操作はどうですか?
それで、私は星団とqsubを読んで基本的な実験をしました。qsubを介して複数のジョブを送信できることはわかりますが、非圧縮の入力フォルダーから入力ファイルを取得するにはどうすればよいですか?
たとえば、forループでファイル名を1つずつ選択してqsubコマンドに送信するscript.shを作成できますか?別の効率的な解決策はありますか?
たとえば、それぞれ16個のCPUを搭載した3台のマシンがあり、48個のジョブをキューに送信した場合、qsubはクラスターの異なるCPUでそれらを自動的に起動するか、-nporteコマンドなどの並列環境パラメーターを使用して番号を設定する必要があります。それぞれのクラスター内のCPUの数。PythonスクリプトをMPIで実行可能にする必要がありますか?
要約すると、入力として数十万のファイルがあり、それらをマルチコアマシンのジョブキューに送信したいと思います。マシンを動的に追加すると、ジョブは自動的に分散されます。
もう1つの大きな課題は、500,000の奇数操作のすべての出力を最後に集約する必要があるということです。出力が書き出されるときに、並列ジョブの出力を集約する方法についての提案はありますか?
私はいくつかのシナリオをテスト実行していますが、同様のシナリオで実験した人がいるかどうか知りたいです。
Hadoopプラグインを使用した提案はありますか?http://star.mit.edu/cluster/docs/0.93.3/plugins/hadoop.html
事前にKarthickに感謝します
grid - Google Compute Engine (GCE) に相当する Starcluster はまだありますか?
GCEに相当するStarclusterがあるかどうか知っている人はいますか? Starcluster を EC2 で使用して、恥ずかしいほど並列ジョブを実行できて非常に満足しています。今、私はGCEを試してみたいと思っています。進行中のプロジェクトに喜んで貢献したいのですが、何も見つかりませんでした。
今のところ、必要なソフトウェア (つまり、Open Grid Engine) を手動でインストールし、コピー イメージを生成するだけでよいと思います。難しいことではありませんが、最初にここをチェックしておこうと思いました。