質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
並列処理

複数の計算が同時に実行される手法

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

321閲覧

Pythonのマルチプロセシングにおけるメモリ総使用量を求めたい

tanhxyx

総合スコア4

並列処理

複数の計算が同時に実行される手法

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2023/05/30 04:17

実現したいこと

AWSを借りる必要があり, Pythonスクリプトの使用メモリ量を見積りたいです, 今実行してるスクリプトがpythonのmultiprocessingを使っていてtopの結果が画像のようになります. PID 1298889-94は同一スクリプトからマルチプロセスによって生成されたプロセスです. この場合総メモリ使用量はどのように見積もればよいでしょうか?主に2つの質問があります. マルチプロセスの開始方法にはspawnを用いています.

  1. VIRTとRESのどちらを見るのがよいでしょうか?自分の理解だとRESを見ればよく2.5GBx4という印象があるのですが最悪35GBx4になることもあるのでしょうか?
  2. マルチプロセスを用いた場合使用メモリは単純にプロセス数倍になるのでしょうか?

イメージ説明

試したこと

https://www.haya-programming.com/entry/2016/12/28/082947

https://www.haya-programming.com/entry/2018/12/28/203555

によると, 上の記事ではマルチプロセスにした場合使用メモリはプロセス倍になると述べられてます. 一方で下ではspawnを用いた場合は必要な部分のみ複製されこのmatmulに必要なメモリのプロセス数倍になるかと思っています.

該当のコード

python

1def matmul(inputs): 2 customer_x, item_x = inputs 3 customers = torch.arange(customer_x.size(0)) 4 rating_all = [] 5 for batch_users in tqdm(minibatch(customers, batch_size=TEST_BATCH_SIZE)): 6 rating = customer_x[batch_users] @ item_x.T 7 _, rating_top_500 = torch.topk(rating, k=500) 8 rating_all.append(rating_top_500) 9 del rating, _ 10 rating_all = torch.cat(rating_all) 11 12 return rating_all 13 14 15customer_x, item_x = model.getUsersRating() 16del model 17process_num = 8 18customer_per_process = customer_x.size(0)//process_num 19xs = [(customer_x[customer_per_process*i:customer_per_process*(i+1)], item_x) if i!=process_num-1 else \ 20 (customer_x[customer_per_process*i:], item_x) for i in range(process_num)] 21del customer_x 22p = Pool(process_num) 23rating_all = p.map(matmul, xs) 24p.close()

補足情報(FW/ツールのバージョンなど)

python 3.10
pytorch

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問