アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
プログラミング言語の選択 (スコア:4, すばらしい洞察)
それに何よりプログラマの習熟度、そういうしがらみで決まるもんでしょう。
そんなに簡単にスイッチできるものなら、いまやWindowsアプリの半分ぐらいは
並列化言語とやらで書かれていてもおかしくないはずなのに、そんな話は聞かない。
ましてより制約の厳しい組み込み業界ならなおさら。
ソレを動かすこと自体が仕事ならともかく。
リンク先より
>同氏は、「組み込み機器のソフトウエア開発者は、高レベルな複数のプログラムやモジュールをマルチコア・プロセッサで単に別々に動作させることで、並列プログラミング言語への移行に伴う苦労を避けようとしている」とソフトウエア開発者の現状の姿勢を批判した。
何様? って感じ。
お前がその苦労のコストを払ってくれるのかと。
Re:プログラミング言語の選択 (スコア:4, すばらしい洞察)
ハードを売りたい人がやってる釣りだと思うよ。熱くなっちゃダメ。
マルチスレッドへの対応は時流の流れで仕方の無いことだけど、
パラダイムの大変更なわけだから、焦ってやったって不安定なものが
できて不幸な人が増えるだけ。じっくり腰を据えてやりましょう。
Re:プログラミング言語の選択 (スコア:5, 興味深い)
マルチスレッド万能伝説みたいに、マルチスレッド当たり前の世界観があるのは理解します。
PCやWSの世界では、CPU数を変化させて、性能のスケールUPを目指すわけですから、
マルチスレッドの極地だとおもうんですよ。
しかしメニーコアなCPUを複数個乗せたりすると、カーネルがスレッドスケジューリングの際
キャッシュコーヒーレントなどを考え、どのコアに配置するかを動的に悩みだすわけで。
じゃ、組み込み世界で、この「動的な悩み」を解決するコストが妥当か?
シングルコアのマルチスレッドのような並行処理は重要かもしれないけど
(というか、適度な並行処理がないと設計モデルが破綻すると思う)
じゃ、メニーコアなCPUでどこにどの機能を担当するスレッド・タスクをマッピングするかを
動的に悩むのか?これが問題と思う。
そもそも「動画処理」と「音声処理」はこのコア、「UI処理」はこのコアと静的に割り振るのが
妥当なときもあると思う。
対称マルチプロセッサは、ある意味正しいと思うけど、それを実現する動的コストが妥当かどうか
だと思います。非対称マルチプロセッサ(ASMP)がある意味解なわけで、そうなると並列処理言語より
ASMP支援ライブラリだとおもうんですよ。
Re:プログラミング言語の選択 (スコア:1, 興味深い)
並行(concurrent)と並列(parallel)は意味が違ことはきっとご存じだと思う。
で、訳文を見てみると 並列 としつこく書いてある。
え? 組み込みで 並列 なの?
と思って、原文を探してみた。
たぶん、これ
http://www.eetimes.com/showArticle.jhtml;jsessionid=AG5UTXCIMCYGAQSNDL... [eetimes.com]
やっぱ、 parallel と書いてある。
結論:
コレはスレッディング以上の恐ろしいことについて、さらっと流している戦慄すべき記事のようです。
我々がスレッドで書いているような粒度の問題を気にしているわけではなさそうな...
という続きは、明日羽田空港で(もし私の知っている人なら。違ってたらスンマセン)。
Re:プログラミング言語の選択 (スコア:0)
ちなみにその場合、スレッド(と呼ぶならば)はどう静的に割り当てるのが吉なんでしょうか?
スレッドの数は固定で、それぞれをもちろん静的に各コアに割り当て、各スレッドがそれぞれ仕事をするんでしょうか?
でもそれだといわゆるマルチスレッド的な処理が欲しくなったらちょっと困りそう。
スレッドの生成は動的だけど、そのスレッドをどのコアに割り当てるかを「処理の種類」か何かで決めるのだと事前に決めておく、という感じでしょうか?
Re:プログラミング言語の選択 (スコア:0)
プロセッサの特性とリンクしたスレッドプールを作ればよさそうに思います。
このスレッドプールに突っ込むと動画、音声処理用とか、
このスレッドプールは暗号化処理用とか。
JavaとかC#のような中間表現を使う言語の場合、
実行時にスレッドプール特性に応じてJITコンパイルしてくれるとうれしいですね。
組み込みだと無理でしょうから、事前に各スレッドプール用にインストラクションをチューニングしとくとか。