アカウント名:
パスワード:
プログラミング言語やライブラリと言うよりも, むしろアルゴリズムレベルで異なってくると考えた方が良いでしょう. なぜならそれぞれで性能を落とす部分が異なってくるからです. 例えば
なんてことが考えられます. デュアルコアぐらいまでだとキャッシュへのヒット率とか, それ以前の計算処理でパイプラインの乱れを減らすことに注力すればほぼ問題ありません. メモリ共有型SMPで4CPUあたりから上になってくるとコンパイラやライブラリの出来が性能の大きな部分を占めるのですが, ここでコンパイラやライブラリの癖(例えば配列のサイズとか配列へのアクセス順, 条件判断のタイミングなど)を考慮することで大きな性能差がでます. そのためアルゴリズムを局所的に最適化することが必要になります. これ以上の構成では, 計算ノード間の通信速度やネットワークトポロジにバリエーションがあっても, 基本となるのは計算をできるだけノードの中で完結させ他のノードとの通信を減らすことです. そのためには問題をいかに分割・局所化するかといったことから検討しなければなりません. こうなるとプログラミングがどうこうというレベルじゃなくなって, 事象のモデル化なんてところから再出発が必要だったりします.
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
質問です (スコア:2, 興味深い)
・インテルのCore2Duoのようなデュアルコア環境におけるプログラミング
・Sunとかが売ってる4~16個ぐらいのマルチコアを対象とした処理の分散
・大学のスパコンみたいな複数のグリッドを繋げたホモジニアスなグリッドコンピューティング
・地球シミュレーターみたいなベクトル型プロセッサを繋げたお化け
・GIMPSのようにネットワークに繋がったコンピューター資源に処理を割り振る分散コンピューティング
こーいうのって全部別々の技術で別々のプログラミング言語が使われているんですか?
それともコアの数に依存しない分散処理ができるようなプログラムを書けば
ハードウェアの違いを隠蔽してくれるような素敵な手法があったりするものなんですか?
#アスロンよりもK6レベルのコアを100個ぐらい乗っけたパソコン?が欲しい。
ごめんなさい。
Re:質問です (スコア:4, 参考になる)
プログラミング言語やライブラリと言うよりも, むしろアルゴリズムレベルで異なってくると考えた方が良いでしょう. なぜならそれぞれで性能を落とす部分が異なってくるからです. 例えば
なんてことが考えられます. デュアルコアぐらいまでだとキャッシュへのヒット率とか, それ以前の計算処理でパイプラインの乱れを減らすことに注力すればほぼ問題ありません. メモリ共有型SMPで4CPUあたりから上になってくるとコンパイラやライブラリの出来が性能の大きな部分を占めるのですが, ここでコンパイラやライブラリの癖(例えば配列のサイズとか配列へのアクセス順, 条件判断のタイミングなど)を考慮することで大きな性能差がでます. そのためアルゴリズムを局所的に最適化することが必要になります. これ以上の構成では, 計算ノード間の通信速度やネットワークトポロジにバリエーションがあっても, 基本となるのは計算をできるだけノードの中で完結させ他のノードとの通信を減らすことです. そのためには問題をいかに分割・局所化するかといったことから検討しなければなりません. こうなるとプログラミングがどうこうというレベルじゃなくなって, 事象のモデル化なんてところから再出発が必要だったりします.