確か、もっと古いCPUでも、
mfence や、movxxxxx 系の命令でも色々出来たと思う。
物凄い複雑なので、ちゃんと理解してないけど。
探検
マルチスレッドプログラミング相談室 その9
417デフォルトの名無しさん
2019/04/02(火) 12:22:49.68ID:ZD2r0ERn418デフォルトの名無しさん
2019/04/02(火) 12:29:24.16ID:LpV8NoZ4 以下のようなものも関係している。複雑すぎて理解してない。
https://xem.github.io/minix86/manual/intel-x86-and-64-manual-vol3/o_fe12b1e2a880e0ce-429.html
・WBINVD, PREFETCHh, CLFLUSH, CLFLUSHOPT,
・非一時的な移動命令(MOVNTI, MOVNTQ, MOVNTDQ, MOVNTPS,
MOVNTPD, INVD)
・第3レベルのキャッシュ無効化フラグ(IA32_MISC_ENABLE MSRのビット6)
https://xem.github.io/minix86/manual/intel-x86-and-64-manual-vol3/o_fe12b1e2a880e0ce-429.html
・WBINVD, PREFETCHh, CLFLUSH, CLFLUSHOPT,
・非一時的な移動命令(MOVNTI, MOVNTQ, MOVNTDQ, MOVNTPS,
MOVNTPD, INVD)
・第3レベルのキャッシュ無効化フラグ(IA32_MISC_ENABLE MSRのビット6)
419デフォルトの名無しさん
2019/07/19(金) 00:38:16.38ID:eyVpHwMv 質問:
ある資源を生成破棄するメーカースレッドがひとつと、その資源を使うユーザースレッドが複数ある。
メーカースレッドとユーザースレッドは排他的に資源にアクセスするが、ユーザースレッド同士は排他的でない。
どのように排他処理を実装すればよいか。
ある資源を生成破棄するメーカースレッドがひとつと、その資源を使うユーザースレッドが複数ある。
メーカースレッドとユーザースレッドは排他的に資源にアクセスするが、ユーザースレッド同士は排他的でない。
どのように排他処理を実装すればよいか。
420デフォルトの名無しさん
2019/07/19(金) 02:31:14.72ID:jdncuoqE421デフォルトの名無しさん
2019/07/19(金) 03:55:47.52ID:J62Ms8NU 課題
422デフォルトの名無しさん
2019/07/19(金) 20:31:45.43ID:XW48gDPw 2コア4スレッドってCPUだと
4スレッド同時に動くの?
4スレッド同時に動くの?
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/
レスを投稿する
ニュース
- 【芸能】『バンダイナムコフェス』上海公演 日本人歌手・大槻マキが歌唱中に強制退場… 急に音を止められスタッフらしき人達に [冬月記者★]
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 [ぐれ★]
- 橋下徹氏 高市首相“台湾有事”発言に「政治家の失言で一部の人でも仕事がキャンセルに…我々は認めていいのかな」疑問呈す [muffin★]
- 「インバウンド政策上、中国は重要」、訪日自粛で金子国交相「早く通常の状況に戻っていただきたい」★2 [ぐれ★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★5 [ぐれ★]
- Amazonブラックフライデー 活況の裏に過酷労働 事故やケガを「自己責任にしないで」配達員ら4年連続抗議 [蚤の市★]
- (*´ω`*)おはようドリーム
- 【動画】上海バンダイナムコフェス、ワンピース歌ってる途中に中国政府「日本人の公演全面禁止」発令された瞬間強制終了 怖すぎ★4 [579392623]
- 佳子様に似てる
- プロレスラーってロープに振ると走って戻ってくるけど
- 【悲報】ルビィちゃん、しばかれる
- 葉山舞鈴とかってvチューバー人生イージーモードすぎじゃね?
