アカウント名:
パスワード:
プログラムを実行するにしてもチップの外のメモリやI/O絡みで頻繁にウェイト突っ込まれたりだなんだでチップが持つ演算能力を発揮出来ない所までチップが持つ演算能力が高くなってしまってる訳です。
例えば1GBのメインメモリをキャッシュメモリと同じようにオンチップに出来ればチップと主記憶の距離などに由来した遅延時間は無視できるでしょうが、そのような物は出来るにしても極めて高価になるのでチップの外の基板上に主記憶を配置する訳で、仮にメモリチップ自体についても超高速にしたとしても(現にそうなっていますが)、メモリとCPUの間の配線距離やらバスを同期させるタイミングやらが邪魔をして非常に遅く見えてしまっています。
で、そういう前提がある時にどうすればいいかと言えば時分割処理を複数の処理コアでやってキャッシュヒットの確率を劇的に上げたり、I/O処理のようなウェイトしてる方が多い処理は時分割処理とは別の処理コアに並行してやらせるような形で時間をロスするリスクを分散してしまったりする事で本来的には余ってしまう処理速度をとことん喰い潰そうとする訳です。
その為にマルチコアやGPU等の専用処理チップへの演算分散と言うやり方が出てくる訳で…並列プログラミングとかはあくまでもマルチコア化の結果・アウトプットであって前提ではない。と思うのですが…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
え?もう限界来てる (スコア:0)
時間を持て余してるんですよ(´・ω・`)(Re:え?もう限界来てる (スコア:1)
プログラムを実行するにしてもチップの外のメモリやI/O絡みで頻繁にウェイト突っ込まれたりだなんだでチップが持つ演算能力を発揮出来ない所までチップが持つ演算能力が高くなってしまってる訳です。
例えば1GBのメインメモリをキャッシュメモリと同じようにオンチップに出来ればチップと主記憶の距離などに由来した遅延時間は無視できるでしょうが、そのような物は出来るにしても極めて高価になるのでチップの外の基板上に主記憶を配置する訳で、仮にメモリチップ自体についても超高速にしたとしても(現にそうなっていますが)、メモリとCPUの間の配線距離やらバスを同期させるタイミングやらが邪魔をして非常に遅く見えてしまっています。
で、そういう前提がある時にどうすればいいかと言えば時分割処理を複数の処理コアでやってキャッシュヒットの確率を劇的に上げたり、I/O処理のようなウェイトしてる方が多い処理は時分割処理とは別の処理コアに並行してやらせるような形で時間をロスするリスクを分散してしまったりする事で本来的には余ってしまう処理速度をとことん喰い潰そうとする訳です。
その為にマルチコアやGPU等の専用処理チップへの演算分散と言うやり方が出てくる訳で…並列プログラミングとかはあくまでもマルチコア化の結果・アウトプットであって前提ではない。と思うのですが…
Re: (スコア:0)
> 例えば1GBのメインメモリをキャッシュメモリと同じようにオンチップに出来ればチップと主記憶の距離などに由来した遅延時間は無視できるでしょうが、
え~と、今のGHzクラスのCPUに詰まれている数MB程度のキャッシュでも、アクセスに数10クロック必要です。
数10が2,30なのか5,60なのかは、CPUメーカやCPUの品種によって違いますが、「無視できる程度」ではありません。< 我慢強い人だと問題ない?
# 256KB程度のL2キャッシュを積んでいた最高数100MHz程度の昔のCPUでもL2キャッシュのアクセスは数10クロック必要だった。
# 大容量化されてもアクセスタイムが昔と同じくらいのクロック数であるのは、キャッシュと同時にCPUも速くなっているから。