by
Anonymous Coward
on 2020年02月12日 18時19分
(#3760860)
Windows serverだと2016の時点で512スレッド対応していたと思うけど、Windows10のカーネルでは技術的に難しかったのかな? Windows 10の開発時期を考えると、ハイエンドPCが64スレッドを超える時代まで使われるOSになることが十分に予測できたと思うのだけど。(3nmが普及するころには10万円台のCPUでも上限いくよね) あるいは大型アップデートで簡単に上限が上げられるのだろうか
プロセッサグループの上限設定 (スコア:0)
Windows serverだと2016の時点で512スレッド対応していたと思うけど、Windows10のカーネルでは技術的に難しかったのかな?
Windows 10の開発時期を考えると、ハイエンドPCが64スレッドを超える時代まで使われるOSになることが十分に予測できたと思うのだけど。(3nmが普及するころには10万円台のCPUでも上限いくよね)
あるいは大型アップデートで簡単に上限が上げられるのだろうか
Re:プロセッサグループの上限設定 (スコア:1)
カーネルは対応してる。
{Set,Get}{Thread,Process}AffinityMask APIが、DWORD_PTRつまりCPUのビット数までしか対応していないせいなので、純粋に互換性の問題。64スレッド超使いたいアプリは新しいProcessor Groups APIを使えということ。
詳細: https://docs.microsoft.com/ja-jp/windows/win32/procthread/processor-groups [microsoft.com]
Re: (スコア:0)
25年近く前のWindows NT時代だと、マルチプロセッサで、32CPUなんてほぼ有り得ない状況だったから仕方ない感じですね。
Re:プロセッサグループの上限設定 (スコア:1)
事情はServerOSでも変わらないよ。API設計寄りの話だから。新API自体はWin7からあるし。
たぶん、AffinityMaskシリーズAPIが、32/64bitのbitmaskを引数で取ってたからと思うけどね。
互換を取る関係上、Cpuを64個単位のProcesorGroupに分割して、
今までのAffinityMaskをProcessorGroup相対マスクに定義し直したから、
互換で動いてると64の壁ができる、みたいな話。
Re: (スコア:0)
いつも壁は64だな。
640のコアがあれば十分だと思うけど。
Re: (スコア:0)
いいや、やっぱり640kコアは欲しいな。
Re: (スコア:0)
コアメモリが640kバイトか。胸熱だな。
Re: (スコア:0)
元記事くらい読んだら?
Re:プロセッサグループの上限設定 (スコア:5, おもしろおかしい)
みんながみんな元記事読んでたら、「あーなるほどね」で終わってスラドは過疎って終わりじゃないですか。
そのうちhylomは元記事へのリンクさえ張らなくなることでしょう。
Re: (スコア:0)
「完全に理解した」
Re: (スコア:0)
hylomちょっとわかる。
Re: (スコア:0)
元記事の内容を理解できない愚かな私に、ご教授ください。
元記事(おそらく、PCWatch)には、上限設定が64であることしか書いておらず
なぜ、Windows10では64が上限なのか書かれていないように見えます。
元記事を読まれているであろう、貴方様ならばどこに書かれているか指示できると思うので
どうか教えていただけますでしょうか。
Re: (スコア:0)
どのCPUかを指定する番地にあたるものが、64ビットCPUだったらそのビット数64個までで、昔はそれで十分だったので、ライブラリも作ってしまった。
しかし時代の流れでそうも言ってられなくなり、64個以上CPUがあるときは64個をひとつのグループにして、第何グループの何という指定ができるように拡張することになった。
最初から拡張版ライブラリを使用して作ったプログラムは問題ないが、使ってないプログラムはまずグループという考え方が入ってないから最初のグループのCPUしか指定ができない、グループの指定ができるようプログラム設計からやり直しなさい。
…ってことでは?
Re: (スコア:0)
もっとぶっちゃければ「対応しているソフトはある」ってので十分かと。
ま、それ言えばプロセッサグループ云々自体に意味が無いともなるけども。
Re: (スコア:0)
対応するのはサーバー製品として高く売るためとか…
Re:プロセッサグループの上限設定 (スコア:2)