#author("2023-01-20T01:07:55+00:00","","")
#author("2023-01-20T01:08:38+00:00","","")
[[水上/技術資料]]


----
目次
#contents
----

*目標 [#z00fd092]
Dask.distributeを使ってプログラムの高速化を目指します。

*環境 [#h82a02b0]
Python 3.10.1 64bitでやってますが,たぶんどのバージョンもできるはず... &br;
pythonインストールは[[こちら>https://www.python.org/]]

*Daskについて [#h82a02b0]
**daskとは [#h82a02b0]
参考に↓ &br;
https://qiita.com/simonritchie/items/e174f243bc03fb25462e &br;
https://distributed.dask.org/en/stable/

** 下準備[#h82a02b0]
** schedule側とworker側について[#h82a02b0]
daskは、処理を支持する「schedule側」と、処理をする「worker側」に分かれる。イメージは以下の通り。&br;


#ref(ヘイレツ.png,,320x180)


*手順 [#h82a02b0]
**schedule側とworker側のとの通信の下準備 [#h82a02b0]
まずdask、distributedをインストール(schedule側、worker側の両方)
バージョンはschedule側とworker側でそろえておいたほうがいいのでバージョン指定をしてインストール

 pip install dask==2022.11.1
 pip install distributed==2022.11.1


**1.scheduler側ですること [#h82a02b0]
・scheduler側で使用する「Wireless LAN adapter Wi-Fi:」の物理アドレスを確認する。(後から使います) &br;
→コマンドプロンプトを開いて「ipconfig」と入力すると確認することができるよ &br;

#ref(siu2.png,,567x147)

コマンドプロンプトを開いて「dask-scheduler」と入力する。 &br;
↓このように表示されたら成功です
#ref(daskzu1.png,,)

この状態で待機です &br;

**2.worker側ですること [#h82a02b0]
コマンドプロンプトを開いて、「dask-worker {tcp}:8786」と入力する。&br;
{tcp}には先ほど確認したscheduler側のwifiの物理アドレスを入力する) &br;
↓これはscheduler側のwifiの物理アドレスが「192.168.3.12」の時の入力例です。入力したときにこのようになれば成功です
#ref(daskzu3.jpg,,567x147)

接続が成功したらscheduler側の画面がこのようになります。(赤色の部分にworker側の物理アドレスが書いてある) &br;
#ref(daskzu5.png,,567x147)

これを分散したいworker分行ってください。 &br;

接続状態になれば準備完了です。scheduler側でプログラムを動かしてください。 &br;

**エラーの対処[#h82a02b0]
「dask-worker」および「dask-scheduler」と入力しても「内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません」と表示されるとき &br;
・「dask-worker」および「dask-scheduler」と入力しても「内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません」と表示されるとき &br;
→「dask」「distributed」のpathが通ってない可能性がある。&br;

dask-workerを使うときは、pathを通す。 &br;

dask-workerおよびdask-schedulerが通信できなかった場合&br;
・dask-workerおよびdask-schedulerが通信できなかった場合&br;
ファイアウォールがオンになっているとpc同士で通信できないので、ファイアーウォールを一時的にオフにしておく。(schedule側、worker側の両方)

windowsの場合&br;
https://faq.nec-lavie.jp/qasearch/1007/app/servlet/qadoc?QID=011761
&br;
macの場合&br;
https://aprico-media.com/posts/3083#:~:text=Mac%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%82%92%E3%82%AA%E3%83%95%E3%81%AB%E3%81%99%E3%82%8B%E3%80%8D%E3%81%AE%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%E3%80%82,%E3%81%93%E3%82%8C%E3%81%A7%E3%81%99%E3%81%90%E3%81%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82

*実験 [#bb5c41a2]

*参考文献 [#ddfa4bf2]
↓dask.distributedで分散処理 &br;
https://catindog.hatenablog.com/entry/2018/03/28/164320 

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS