マルチスレッドプログラミングについて語るスレ
■前スレ
マルチスレッドプログラミング相談室 その8
http://toro.2ch.net/test/read.cgi/tech/1253521167/
■過去スレ
その1 ttp://pc3.2ch.net/tech/kako/997/997345868.html
その2 ttp://pc5.2ch.net/test/read.cgi/tech/1037636153/
その3 ttp://pc8.2ch.net/test/read.cgi/tech/1098268137/
その4 ttp://pc8.2ch.net/test/read.cgi/tech/1130984585/
その5 ttp://pc11.2ch.net/test/read.cgi/tech/1157814833/
その6 ttp://pc11.2ch.net/test/read.cgi/tech/1187008532/
その7 ttp://pc12.2ch.net/test/read.cgi/tech/1215253576/
OS・言語・環境は問わないが、それゆえ明記すべし。
テンプレ
【OS】
【言語】
【実行環境】
【その他特記する事項】
探検
マルチスレッドプログラミング相談室 その9
2012/06/15(金) 01:31:57.88
423デフォルトの名無しさん
2019/07/19(金) 21:19:16.26ID:oxWniFkv 動くよ
ただしハードウェアリソース的に余裕がある部分(SSEとか)位しかあまり効果がないな
マルチスレッドではやや分がある
というのはコンテキストスイッチの負荷が純粋に1/2になる
レジスタの内容をメモリに退避する回数が1/2になればそりゃ軽くなるよね
整数演算ではあまり期待しない方がいい
ただしハードウェアリソース的に余裕がある部分(SSEとか)位しかあまり効果がないな
マルチスレッドではやや分がある
というのはコンテキストスイッチの負荷が純粋に1/2になる
レジスタの内容をメモリに退避する回数が1/2になればそりゃ軽くなるよね
整数演算ではあまり期待しない方がいい
424デフォルトの名無しさん
2019/07/19(金) 22:46:03.30ID:tF13LP95 同時に動いてないなら排他制御しなくていいみたいな勘違いしてそうな質問だ。
425デフォルトの名無しさん
2019/07/19(金) 23:08:15.01ID:JGHPeX3b そこまで深くは考えてなかったんだけど。
CPUコアひとつなのにどうやって2スレッド同時に動くのか不思議だったから。
CPUコアひとつなのにどうやって2スレッド同時に動くのか不思議だったから。
426デフォルトの名無しさん
2019/07/20(土) 10:22:32.66ID:aCn5nh8Q 実際に鯖用CPUではHT切ってあるもんな
かえってパフォーマンスが低下するとかで
最近の例の脆弱性との絡みもある
その代わり最初からコアいっぱい積んでいる
かえってパフォーマンスが低下するとかで
最近の例の脆弱性との絡みもある
その代わり最初からコアいっぱい積んでいる
427デフォルトの名無しさん
2019/07/20(土) 10:23:03.60ID:aCn5nh8Q ×切ってある
◯BIOSで自分で切っている
◯BIOSで自分で切っている
428デフォルトの名無しさん
2019/07/20(土) 12:15:42.11ID:D7d7RY7Z on/offをアプリ側で指定できないし、
性能が線形に上がらない時点でHTを考慮した設計は面倒すぎる。
性能が線形に上がらない時点でHTを考慮した設計は面倒すぎる。
429デフォルトの名無しさん
2019/07/20(土) 13:01:11.01ID:aCn5nh8Q マルチスレッド・デザインパターンの本にあった例だけど
ワーカースレッド(スレッドプール)を実装せよ
なお言語は自由とする
ワーカースレッド(スレッドプール)を実装せよ
なお言語は自由とする
430デフォルトの名無しさん
2019/07/20(土) 22:48:42.36ID:xFVhhGJz マルチスレッドの解説本はいくつもあるけど
マルチプロセッサのプログラミングって参考書ないのかね。
マルチプロセッサのプログラミングって参考書ないのかね。
431デフォルトの名無しさん
2019/07/21(日) 00:29:38.70ID:9qa3Jnjy マルチスレッドの解説本でカバー出来ないくらいのマルチプロセッサのプログラミングだと
かなりマニアックというかプロセッサ固有の問題の割合が大きくなると思うので
そういう方面で探すしかないのではないか
それだけに特化した専門書は無いかもね
かなりマニアックというかプロセッサ固有の問題の割合が大きくなると思うので
そういう方面で探すしかないのではないか
それだけに特化した専門書は無いかもね
432デフォルトの名無しさん
2019/07/21(日) 00:46:58.94ID:gryZIvyQ 行列演算を並列処理とかそういう粒度の細かな並列化の話ばっかりで。
せっかく10コアとかあるんだから、各コアに別々のプログラムを走らせておいて
同期しながら処理とかしたいんだけどどうするのがいいかよく分からない。
fork させてメッセージやりとりすれば良さそうなんだけど。
やりたいことがちょっと特殊かもね。
せっかく10コアとかあるんだから、各コアに別々のプログラムを走らせておいて
同期しながら処理とかしたいんだけどどうするのがいいかよく分からない。
fork させてメッセージやりとりすれば良さそうなんだけど。
やりたいことがちょっと特殊かもね。
433デフォルトの名無しさん
2019/07/21(日) 01:03:16.42ID:oN+9KGia 質問の低レベル化が甚だしい。アセンブラを勉強して基礎固めを。
434デフォルトの名無しさん
2019/07/21(日) 01:24:11.69ID:YuxLcsPo OpenMPみたいなのを手動でやるって話かな
マルチコアだとメモリ帯域がボトルネックになりやすいから
巨大な行列計算は少し粒度を荒くしたMPIの方が強いよね
マルチコアだとメモリ帯域がボトルネックになりやすいから
巨大な行列計算は少し粒度を荒くしたMPIの方が強いよね
435デフォルトの名無しさん
2019/07/21(日) 01:57:36.05ID:dcJVZcgj 10コアとかいってるからマルチプロセッサというよりメニーコア活用術?
436デフォルトの名無しさん
2019/07/21(日) 08:19:29.20ID:gryZIvyQ437デフォルトの名無しさん
2019/07/21(日) 08:23:47.17ID:nevBE1rB 並列処理じゃなくて並行処理で探せば
438デフォルトの名無しさん
2019/12/05(木) 19:00:58.65ID:sV2dE7Px マルチスレッドの排他処理で詰まってスレ検索して来てみたけどこのスレは高尚過ぎるなw
初心者スレにでも行こう
初心者スレにでも行こう
439デフォルトの名無しさん
2021/03/04(木) 23:27:05.69ID:320wEDvY _beginthreadex() を使ったマルチスレッドプログラムについて質問です。
この関数の説明を見ると、「_beginthreadex() のコールに成功すると、スレッドのために
タイムスライスが割り当てられたか否かによらず、スレッドはアクティブ(non-signal)になる」
とあったのですが、_beginthread() がスレッドハンドルを返すよりも前にスレッド関数内の
処理が実行される(完了する)ことはありえますか?
この関数の説明を見ると、「_beginthreadex() のコールに成功すると、スレッドのために
タイムスライスが割り当てられたか否かによらず、スレッドはアクティブ(non-signal)になる」
とあったのですが、_beginthread() がスレッドハンドルを返すよりも前にスレッド関数内の
処理が実行される(完了する)ことはありえますか?
440デフォルトの名無しさん
2021/03/05(金) 15:45:04.28ID:0Dz+Yobc >成功した場合、これらの各関数は、新しく作成されたスレッドへのハンドルを返します。ただし、新しく作成されたスレッドが短時間で終了した場合、 _beginthread は有効なハンドルを返さない可能性があります。 (「解説」の説明を参照してください)。
>_Beginthread よりも _beginthreadex を使用する方が安全です。 _Beginthread によって生成されるスレッドが短時間で終了した場合は、 _beginthread の呼び出し元に返されるハンドルが無効であるか、別のスレッドを指している可能性があります。 ただし、 _beginthreadex によって返されるハンドルは _beginthreadex の呼び出し元によって閉じられる必要があるため、 _beginthreadex がエラーを返さなかった場合は、有効なハンドルであることが保証されます。
ハンドルが有効であることは保証されているけど
実行順についての言及はないし、
そもそも別スレッドなら、どちらが先に行われるかについては何の保証もないと考えるべきじゃないのかな
「APIから戻る」のだって実行権がなければ後回しにされる可能性はあるんだから
>_Beginthread よりも _beginthreadex を使用する方が安全です。 _Beginthread によって生成されるスレッドが短時間で終了した場合は、 _beginthread の呼び出し元に返されるハンドルが無効であるか、別のスレッドを指している可能性があります。 ただし、 _beginthreadex によって返されるハンドルは _beginthreadex の呼び出し元によって閉じられる必要があるため、 _beginthreadex がエラーを返さなかった場合は、有効なハンドルであることが保証されます。
ハンドルが有効であることは保証されているけど
実行順についての言及はないし、
そもそも別スレッドなら、どちらが先に行われるかについては何の保証もないと考えるべきじゃないのかな
「APIから戻る」のだって実行権がなければ後回しにされる可能性はあるんだから
441sage
2021/03/06(土) 05:17:04.33ID:0GCeIGT3442デフォルトの名無しさん
2021/03/06(土) 11:08:41.13ID:pd/Aiz5V ちなみにCentOSはスレッドのコアが指定できるよ。
443デフォルトの名無しさん
2021/03/06(土) 11:30:24.47ID:UzpsIFsk macOSだとコア指定できない。
444デフォルトの名無しさん
2021/03/06(土) 13:08:47.51ID:VGFn/kw3 あわしろ氏によると、Macは既にオワコンなので、WSLを使うと良いらしい。
445デフォルトの名無しさん
2021/03/25(木) 15:15:49.52ID:LuSagST9 針に糸を通す( thread a needle
糸をつむぐ( spin thread [yarn]
糸が切れた( The thread broke.
琴の糸を締める( tighten a string of a koto
糸をかき鳴らす( strum the strings
糸をつむぐ( spin thread [yarn]
糸が切れた( The thread broke.
琴の糸を締める( tighten a string of a koto
糸をかき鳴らす( strum the strings
446デフォルトの名無しさん
2021/04/03(土) 09:59:34.29ID:CHs8071g このスレ来年で10年か
スレ推奨図書とかないの?
スレ推奨図書とかないの?
447デフォルトの名無しさん
2022/04/14(木) 16:49:21.50ID:wwxSZsaE マルチスレッド処理の花形といえばハードなリアルタイムスレッドとバックグラウンドスレッドの間のデータのやり取りだと思ってるんだが
スレの過疎っぷりを見るに、殆どの人にとって必要のないものだったんだな
スレの過疎っぷりを見るに、殆どの人にとって必要のないものだったんだな
448デフォルトの名無しさん
2022/05/26(木) 01:42:01.15ID:EhvYdlEg449デフォルトの名無しさん
2022/05/26(木) 16:41:59.49ID:kr4vk/7I450デフォルトの名無しさん
2023/10/18(水) 18:12:44.04ID:k+tvnK8M >>432
とりあえず、メインスレッド1個にサブスレッドを9個用意し、基本的な管理はメインスレッド管理。
イベントハンドルは9×2個用意する。
サブスレッドはイベント処理とWaitForSingleObjectで待たせておいて、メインスレッドから情報を送って
SetEventでイベントを動かす。メインスレッドはサブスレッド9個からSetEventでイベントが返らない限り
イベントとWaitForSingleObjectを駆使して止めておく。
とりあえず、メインスレッド1個にサブスレッドを9個用意し、基本的な管理はメインスレッド管理。
イベントハンドルは9×2個用意する。
サブスレッドはイベント処理とWaitForSingleObjectで待たせておいて、メインスレッドから情報を送って
SetEventでイベントを動かす。メインスレッドはサブスレッド9個からSetEventでイベントが返らない限り
イベントとWaitForSingleObjectを駆使して止めておく。
451デフォルトの名無しさん
2023/10/18(水) 18:13:06.20ID:k+tvnK8M >>432
とりあえず、メインスレッド1個にサブスレッドを9個用意し、基本的な管理はメインスレッド管理。
イベントハンドルは9×2個用意する。
サブスレッドはイベント処理とWaitForSingleObjectで待たせておいて、メインスレッドから情報を送って
SetEventでイベントを動かす。メインスレッドはサブスレッド9個からSetEventでイベントが返らない限り
イベントとWaitForSingleObjectを駆使して止めておく。
とりあえず、メインスレッド1個にサブスレッドを9個用意し、基本的な管理はメインスレッド管理。
イベントハンドルは9×2個用意する。
サブスレッドはイベント処理とWaitForSingleObjectで待たせておいて、メインスレッドから情報を送って
SetEventでイベントを動かす。メインスレッドはサブスレッド9個からSetEventでイベントが返らない限り
イベントとWaitForSingleObjectを駆使して止めておく。
452デフォルトの名無しさん
2023/10/18(水) 18:16:53.34ID:k+tvnK8M453デフォルトの名無しさん
2023/10/19(木) 01:25:35.07ID:8UDFhheE >>365
REID 1 みたいな例があるから必ずしも昔の技術というわけではないな。
REID 1 みたいな例があるから必ずしも昔の技術というわけではないな。
454デフォルトの名無しさん
2023/10/19(木) 01:28:22.25ID:8UDFhheE >>16
あれって、OSの機能だから気にしなくても良いというのでは駄目か?
あれって、OSの機能だから気にしなくても良いというのでは駄目か?
455デフォルトの名無しさん
2025/05/12(月) 13:23:26.42ID:Zw0HuL6G 1000msecでコンテキストスイッチ何回発生するんだこれ
456デフォルトの名無しさん
2025/05/12(月) 13:41:45.50ID:zCv6/zTu ここで multi process な質問は反則?
457デフォルトの名無しさん
2025/05/13(火) 15:19:11.88ID:lpqGnCjc 高級言語しか使えない身で話すけど
Pythonで超重量級のCPU処理とOpenAIに対するリクエストで数秒I/Oに飛ぶ処理の二つがそれぞれタスクに分解されてるとき、
前者のタスクが処理完了すると後者のタスクで数個~数十個くらいタスクが新規作成されて、(c, c, c, i, i, i, i, i, i, c, i, i,...)
内部どうなってるのか知らんけどI/OでGIL解放されても後続のタスクが何個も後者のタスクだから前者のタスクがくそ遅延するってあり得る?
両者のタスクを別々のプロセスに切り分けたら前者のタスクが遅延するとかいうことなくなったんだけどさ
Pythonで超重量級のCPU処理とOpenAIに対するリクエストで数秒I/Oに飛ぶ処理の二つがそれぞれタスクに分解されてるとき、
前者のタスクが処理完了すると後者のタスクで数個~数十個くらいタスクが新規作成されて、(c, c, c, i, i, i, i, i, i, c, i, i,...)
内部どうなってるのか知らんけどI/OでGIL解放されても後続のタスクが何個も後者のタスクだから前者のタスクがくそ遅延するってあり得る?
両者のタスクを別々のプロセスに切り分けたら前者のタスクが遅延するとかいうことなくなったんだけどさ
458デフォルトの名無しさん
2025/05/14(水) 17:07:33.93ID:uDIzjmjF そういう場合
同じ状況になる再現コードを貼りましょう
同じ状況になる再現コードを貼りましょう
459デフォルトの名無しさん
2025/05/14(水) 17:34:26.40ID:Ga6mti+e 5次方程式に新公式を発見:ルートを超える新理論
2025.05.14 17:05:56 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/177496
>>オーストラリアのニューサウスウェールズ大学(UNSW)で行われた研究
プログらまーも覚えるとよい
125年越しに解決したかもしれない「ヒルベルトの第6問題」とは?
2025年05月10日 15時00分
https://gigazine.net/news/20250510-hilberts-6th-problem-solved/
2025.05.14 17:05:56 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/177496
>>オーストラリアのニューサウスウェールズ大学(UNSW)で行われた研究
プログらまーも覚えるとよい
125年越しに解決したかもしれない「ヒルベルトの第6問題」とは?
2025年05月10日 15時00分
https://gigazine.net/news/20250510-hilberts-6th-problem-solved/
レスを投稿する
ニュース
- 【台湾有事】トランプ氏 電話会談で高市総理に発言抑制を要求か 米メディア報道… ★4 [BFU★]
- 【外交】米紙によると日本側は「発言を完全に撤回することは難しい」と米側に説明(WSJ) [1ゲットロボ★]
- 👨‍🦱👧Z世代、35%が週休3日希望 「無理せず・安定」に重き 民間調査 [パンナ・コッタ★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★8 [Ailuropoda melanoleuca★]
- 【蒲郡ホテル】「中国人団体がキャンセル 損失2000万円」報道に見解公表→「想定内」「中国からの団体客に依存してない」 [nita★]
- 首相、台湾有事答弁で釈明に終始 政治とカネには「そんなことより」 ★2 [蚤の市★]
- 【朗報】ガンダム監督「政権変わってよかった。高市と小野田(35)は最高。石破はゴミ立憲か共.産に行け。メディア報道は全部ウソ」 [517459952]
- 中国「統一教会は邪教、日米は邪教徒に牛耳られている」ヤフコメ荒れすぎて閉鎖へ [347751896]
- 【悲報】男さん「しまむらの服で『BMW』に行ったら、バカにされたが、職業欄に『医師』って書いたら店員の態度変わったw [483447288]
- オールドメディア、「高市はトランプから中国を刺激するなとは言われたけど、撤回や自制を求めるものじゃなかった!」とことさら強調 忖度か [597533159]
- スマホ2台持ちにしようか迷ってるんだが、実際スマホ2台持つ意味ってある? [957955821]
- 映画館で一人でポップコーン食べてるバカ、ガチで嫌われ始める [329329848]
