公開日

開発者が知っておくべきこと:コンカレンシーはパラレリズムではない

著者

Please provide the text you would like me to translate.

Image

システム設計において、並行性と並列性の違いを理解することは重要である。

Rob Pyke(Go言語の生みの親の一人)は次のように述べている。「並行性は、同時に多くのことを扱うことについてである。並列性は、同時に多くのことを行うことについてである。」この区別は、並行性はプログラムの設計についてであり、並列性は実行についてであることを強調している。

並行性は、同時に多くのことを扱うことについてである。プログラムを複数のタスクを同時に処理するように構成すること、タスクは同時に開始、実行、完了することができるが、必ずしも同時に完了する必要はない。並行性は、独立して実行されるプロセスの構成についてであり、プログラムがタスクを完了する前に別のタスクを開始することなく、複数のタスクを管理する能力についてである。

一方、並列性は、複数の計算の同時実行を指す。複数のタスクまたは計算を同時に実行する技術であり、コンピュータ内の複数のプロセッサまたはコアを使用して複数の操作を同時に実行する。並列性は、複数の処理ユニットを持つハードウェアを必要とし、その主な目標はシステムのスループットと計算速度を向上させることである。

実際の観点から、並行性は、プログラムが入力に応答し、バックグラウンドタスクを実行し、単一のコアプロセッサでも、複数の操作を同時に実行するように見える。入出力に制限された操作や、ファイル、ネットワーク、またはユーザーの操作などの外部イベントを待つ必要がある高待機時間の操作で特に有用である。

並列性は、同時に複数の操作を実行する能力があるため、計算速度とスループットがボトルネックとなるCPUに制限されたタスクで重要である。重い数学的計算、データ分析、画像処理、リアルタイム処理を必要とするアプリケーションは、並列実行から大幅に利益を得ることができる。

日本語版は Ai 支援を使用しているため、小さな間違いが存在する可能性があることをご了承ください。

著者

Ai Base Network (ABN), ABN ASIAは、アカデミアに深く関わり、アメリカ、オランダ、ハンガリー、日本、韓国、シンガポール、ベトナムでの仕事経験を持つ人々によって設立されました。ABN ASIAは、学問とテクノロジーが機会と出会う場所です。最先端のソリューションと優れたソフトウェア開発サービスにより、ビジネスがレベルアップし、グローバルシーンに挑戦できるよう支援しています。 私たちの取り組み: より速く。 より良い。 より信頼性が高くなります。 ほとんどの場合、価格も安くなります。

いつでも、ITサービス、デジタルコンサルティング、既製のソフトウェアソリューション、または提案依頼書(RFP)をお探しの際は、お気軽にお問い合わせください。お問い合わせ先は[email protected]です。お客様のテクノロジーに関するニーズにお応えします。

ABNAsia.org

© ABN ASIA