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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Python

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

Q&A

解決済

2回答

383閲覧

WindowsコアとPythonの並列計算

PHYSBO

総合スコア17

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Python

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

0グッド

0クリップ

投稿2022/09/09 08:08

質問

Windowsが何かのプログラムを実行する場合、通常所持しているすべてのコアを使用し計算するのがデフォルトの設定となっていると思います。この場合、Pythonなどでmultiprocessingモジュールなどで並列計算をするのは意味がない(計算速度は速くならない)のでしょうか。それともmultiprocessingを用いることで、よりコアを無駄なく使用できるようになるため、計算速度が速くなるのでしょうか。

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

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

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

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

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

TakaiY

2022/09/09 09:24

「Windowsが何かのプログラムを実行する場合、通常所持しているすべてのコアを使用し計算するのがデフォルトの設定となっている」というのは、どこからの情報ですか?
PHYSBO

2022/09/09 09:48

ありがとうございます。 タスクマネージャーの「詳細」タブで調べたいプロセス上で右クリックをすると「関係の設定」があります。そこでそのプロセスに割り当てられているコア番号一覧を見ることができますが、すべてのコアにチェックがされています。 この状態を私は「全てのコアを使用し、計算している」と判断したのですが、これは「自分でPythonライブラリなどで並列計算の設定すれば全てのコアが使用可能」という意味で、現在の計算で全て使用できているというわけでは無いのでしょうか。
guest

回答2

0

質問の回答はotnさんの通りです。

質問しことへのコメントです。
「この状態を私は「全てのコアを使用し、計算している」と判断したのですが」
この設定は、「そのプログラムがどのCPUで実行可能かどうかを指定するもの」です。
プログラムが1つしかCPU(プロセス)を必要としないのであれば、その中のどれか1つで実行されます。 この場合は得に意味はなさそうです。

意味があるのは、プログラムが複数のCPU(プロセス)を使う場合です。 プログラムによっては「すべてのCPUの数だけプロセスを動かす」というような動作をするものがあります。
そのPCがそのプログラム専用であればいいのですが、そうでない場合、そのプログラムにすべての能力を使われてしまうことになりかねません。 そんなとき、その設定でそのプログラムが使えるCPUを制限することができるのです。

投稿2022/09/09 12:18

TakaiY

総合スコア12765

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

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

PHYSBO

2022/09/09 12:58

ありがとうございます! とても勉強になりました!!
guest

0

ベストアンサー

普通に書いたプログラムは、同時に1コアしか使用しません。
同時に複数コアを使用したい場合は、複数プロセスで処理する必要がありますので、そういうライブラリ・関数を使うか、そもそも複数個のPythonプログラムを実行するかする必要があります。
(明示的に複数プロセスを起動しなくても、使っているライブラリの中で内部的に複数プロセスライブラリを呼んでいる可能性もありますが)

複数プロセスに似たものに、複数スレッドがありますが、この場合は各スレッドは並列に処理されますが、使うコアは1つだけです(ある瞬間にCPUを割り当てられているスレッドは1つだけ)。これは普通のPythonについての話で、言語や処理系によっては複数スレッドが同時にCPUを割り当てられます。

投稿2022/09/09 08:53

編集2022/09/09 08:59
otn

総合スコア84555

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

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

PHYSBO

2022/09/09 10:00 編集

ありがとうございます。とても勉強になりました。 一つ質問です。 複数個のPythonプログラムを実行する場合、異なるディレクトリにあるファイルであれば、異なるコアを使ってそれぞれのファイルを計算できるという話を聞いたことがあるのですが、これは正しいでしょうか。同じディレクトリにあるファイルを複数実行すると1つのコアでそれらのファイルを実行してしまうのでしょうか。
otn

2022/09/09 12:28

間違ってます。ファイルがどこのディレクトリにあるかは関係ありません。
PHYSBO

2022/09/09 12:57

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問