GO

マルチコアCPU

マルチコアCPUが世に出て久しいわけですが、ちょっと疑問が。

友人の話として、マルチコア技術がうまく生かされていないという話を聞きました。これは、Windowsの問題なのか、マルチコアの制御ユニットの問題なのかは分かりませんが。

昔のそれなりに高性能なコンピュータは、CPUボードがいくつも刺さっていて、制御ユニットがジョブないしプロセスを結構うまく配分していたような覚えがあります。マルチコアの使いこなしがちょっとというのが、今のチップとしてのCPUにする際に制御ユニットが面積かなんかの関係で簡略化されているのか、単にWindowsの問題なのか、それは分かりませんが。CPUメーカが出しているコンパイラを使うとずいぶん違うという話も聞いたことがあるので、制御ユニットがまだちょっと甘いのかもしれません。

マルチコアの数はそろそろ安定してきているのでしょうか? もし、制御ユニットの問題だとしたら、そちらをどうにかする方向に進むのでしょうか? Windowsの問題だったらCPUメーカといろいろあって難しいかもしれませんね。

ところでGoogle Go Languageですが、GoogleはChrome OS(中身は原則Linux)をGoで書き直したりするのでしょうか? マルチコアを生かせるような言語というのがGoの売りらしいので、その可能性もありますよね。GoのプロジェクトとChrome OSのプロジェクトがどう関連しているのか、関連していくのかは分かりませんが。

Google Go Language

REBOLのメーリングリストで知ったのですが、Googleが新しい言語を発表(言語の開発を発表?)したみたいです。名前は"Go"。

FAQによると、なんでも、マルチコアマシン上でのシステムソフトウェア開発用言語を狙っているらしいです。ガーベージコレクションと、並列動作(と言うのでしょうか?)、および(多分、並列実行しているスレッドか何かの間での)通信も提供しているのとこと。

Pascal的な、型の宣言が変数や関数名の後に来たり、":="という先祖返り的な代入記号を使ったりしています。その他にも、"()"の数を減らせるような書き方になっていたり、多値というか一つの変数に複数の値を持たせたり、多分関数の返り値でもそれができると思いますが、そういうのや、オブジェクト指向言語っぽい書き方は出来るけど型の継承はないとか、あとはコンパイルがとても速いらしいなどの特徴があるようです。

見た目的とか、概念的に「面白い」というのは、ちょっと見たところでは見当たらないかもしれません。システムソフトウェア開発用だったら、まぁそうだろうなとも思いますが。

あ、そういえばREBOLのドキュメントをしばらく訳していないですね。これまでに訳したものも版が代わったりしているみたいなので、またぼちぼち続けていきます。
記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor プロフィール
QRコード
QRコード
  • ライブドアブログ