3

「並列ソフトウェア」の意味と、「並列ソフトウェア」と「通常のソフトウェア」の違いは何ですか?

その長所と短所は何ですか?

「並列ソフトウェア」を作成するには、特定のハードウェアまたはプログラミング言語が必要ですか?

4

3 に答える 3

2

「並列ソフトウェア」には、特定のハードウェアまたはプログラミング言語が必要ですか?

はい、はい。

最初のものは簡単です。ほとんどの最新の CPU (m6800 よりも新しいものを言う) には、一度に複数のことを実行できるようにするハードウェア機能がありますが、両方を同時に実行する必要はありません。たとえば、タイマー割り込みがオフになると、CPU は現在行っていることを保存してから、別のことを開始できます。これらのタスクは同時に実行されます。

それがなくても、何らかの接続 (Null モデム アダプタを介した単純なシリアル接続など) を持つ 2 台のマシンを取得するだけで、両方のマシンが同じタスクを並行して処理できます。

ほとんどの新しい (最新のだけでなく最近の) CPU には、並列コンピューティング リソースが組み込まれています。これらのマルチコア CPU は、実際には同時に 2 つ以上のタスク (コアごとに 1 つのタスク) を処理できます。それらのタスクが連携するのがより効率的です。

2 つ目は、並列対応言語などの特別なソフトウェア ツールを必要とするもので、ある意味で並列コンピューティングの最も難しい部分です。キッチンに一人しかいない場合は、すべての料理が調理されるまで、最初から最後まで、次から次へと各レシピに従うことで、食事を作るのは非常に簡単です。コックを追加してスピードアップしたい場合は、お互いのつま先を踏まないようにもう少し注意する必要があります.

これを処理する最も簡単な方法は、いくつかのツールを提供するスレッド ライブラリを使用して、複数のタスクが互いに干渉しないように調整できるようにすることです。これは、プログラムに並列フラグを立ててシステムが残りを処理するほど簡単ではありません。むしろ、干渉の可能性があるすべての場所で他のすべてのタスクと通信するように各タスクを作成する必要があります。

于 2009-08-01T16:38:30.097 に答える
0

並列ソフトウェアは、コンピューター上の複数のコア/CPU、または複数のコンピューター間でネイティブに利用できます。例としては、グラフィックス レンダリング ソフトウェアや回路設計ソフトウェアなどがあります。

マルチプロセッサ対応ソフトウェア以外の欠点についてはよくわかりませんが、CPU を大量に消費する傾向があります。

于 2009-08-01T16:26:18.047 に答える
0

http://en.wikipedia.org/wiki/Thread_(computer_science)

コンピューター サイエンスでは、実行のスレッドは、コンピューター プログラムが 2 つ以上の同時実行タスクに分岐した結果です。スレッドとプロセスの実装はオペレーティング システムによって異なりますが、ほとんどの場合、スレッドはプロセス内に含まれています。複数のスレッドが同じプロセス内に存在し、メモリなどのリソースを共有できますが、異なるプロセスはこれらのリソースを共有しません。

最新のプログラミング言語のほとんどは、何らかの形でマルチスレッドをサポートしています (最新バージョンの Javascript もサポートしています)。:-)

長所と短所は、タスクによって異なります。実行する必要がある処理が多数ある場合、マルチスレッドを使用すると、各 CPU が同時に独立して処理できる小さな作業単位に分割するのに役立ちます。ただし、マルチスレッド コードは一般に、シングル スレッド コードよりも記述と保守が複雑になります。

プロセッサが 1 つしかないマシンでも、マルチスレッド コードを記述/実行できます。タスクを実行するプロセッサは 1 つしかありませんが、オペレーティング システムは、コンテキストをすばやく切り替え、一度に各スレッドに対していくつかの命令を実行することで、タスクが同時に発生することを保証します。

並列タスクを実行するおなじみの特殊なハードウェアには、ほとんどの新しいコンピューターに搭載されている GPU があります。このビデオでは、Mythbusters がシングルスレッド CPU とマルチスレッド GPU での描画の違いを示しています:
http://www.youtube.com/watch?v=XtGf0HaW7x4&feature=player_embedded

于 2009-08-01T16:36:01.863 に答える