並列コンピューティングは、並列プログラミングとも呼ばれ、大規模な計算問題を複数のプロセッサーが同時に解決できる小さな問題に分解するプロセスです。
プロセッサーは共有メモリーを使用して通信し、そのソリューションはアルゴリズムを使用して結合されます。並列コンピューティングは、単一のプロセッサーを使用して問題を順番に解決する前身であるシリアル・コンピューティング(シリアル計算とも呼ばれます)よりも大幅に高速です。
1940年代後半から1950年代にコンピューターが初めて発明された際、ソフトウェアは問題を順番に解決するようにプログラムされていたため、処理速度が制限されていました。問題をより速く解決するには、中央処理装置(CPU)上の一連の命令に従ってアルゴリズムを構築し、実装する必要がありました。ある命令が実行された後に初めて、別の命令が解決されるようになるのです。
1950年代に始まる並列コンピューティングにより、コンピューターはコンピューティング問題をより小さな同様の問題に分割することで、コードをより迅速かつ効率的に実行できるようになりました。並列アルゴリズムとして知られるこれらの問題は、複数のプロセッサーに分散されました。
今日、並列システムは様々なコンピューターで使用されるまでに進化し、Eメールのチェックやテキストメッセージの送信などの日常的なタスクをシリアル・コンピューティングで実行する場合よりも何百倍も高速に実行できるようになりました。並列システムは、ノートパソコンやスマートフォンなどの個人用デバイスだけでなく、最先端のスーパーコンピューターや、人工知能(AI)、モノのインターネット(IoT)などの最先端技術も強化しています。
シリアル・コンピューティングとは、逐次コンピューティングとも呼ばれ、計算問題を解決するための命令が一度に1つまたは順番に続くコンピューティングの一種です。シリアル・コンピューティングの基礎では、システムが複数のプロセッサーに問題を分散するのではなく、1つのプロセッサーのみを使用することが必要となります。
コンピューター・サイエンスが進化するにつれて、シリアル・コンピューティングの速度が遅いため、並列コンピューティングが導入されました。並列プログラミングを使用したオペレーティング・システムでは、コンピューターはプロセスの実行と計算を同時に実行できます。この手法は並列処理として知られています。
並列処理と並列コンピューティングは非常に似た用語ですが、いくつかの違いに注意してください。並列処理(並列化)は、ランタイム・タスクをより小さな部分に分割し、複数のプロセッサーを使用して独立して同時に実行されるようにします。通常、複数のプロセッサー上で方程式が解析された後、データを再構築するためには、複数のプロセッサーを搭載したコンピューター・ネットワークまたはコンピューターが必要となります。
並列処理と並列コンピューティングは同じ意味で使用されることがありますが、並列処理とはコンピューター内で複数のコアやCPUが並行して動作することを指し、並列コンピューティングはプロセスを促進するためにソフトウェアが行うことを指します。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
並列コンピューティングのスピードと効率は、スマートフォン、高性能コンピューティング(HPC)、AI、機械学習(ML)など、過去半世紀における最も重要な技術革新の一部を支えてきました。並列コンピューティングは、コンピューターがより複雑な問題をより速く、より少ないリソースで解決できるようにすることで、多くの企業にとってデジタル・トランスフォーメーションの重要な要因にもなります。
並列コンピューティングへの関心は、コンピューター・プログラマーやメーカーがより電力効率の高いプロセッサーを構築する方法を模索し始めたことから始まりました。1950年代、1960年代、1970年代、科学や工学のリーダーたちは、共有メモリー空間を使用し、データセットに対して並列オペレーションを実行するコンピューターを初めて構築しました。
これらの取り組みは、1980年代に64台のIntelプロセッサーを使用した新しいタイプの並列コンピューティングを導入した画期的なCaltech Concurrent Computationプロジェクトに発展しました。
1990年代、ASCI Redスーパーコンピューターは超並列プロセッサー(MPP)を使用して、前例のない1秒あたり10兆回のオペレーションを達成し、コンピューティング能力におけるMPP主導の時代を切り開きました。1同時に、商用ネットワーク上でコンピューター・クラスターまたは「ノード」をリンクする並列コンピューティングの一種であるクラスターが市場に投入され、最終的には多くのアプリケーションがMPPに取って代わられました。
並列コンピューティング、特にマルチコア・プロセッサーとグラフィックス・プロセッシング・ユニット(GPU)は、今日のコンピューター・サイエンスのクリティカルな部分であり続けています。GPUは多くの場合、データ・スループットを拡張し、より多くの計算を一度に実行することで、CPUと同時にデプロイされ、多くの最新のビジネス・アプリケーションを高速化します。
並列コンピューティングが登場する前は、シリアル・コンピューティングでは、単一のプロセッサーが複雑な問題を一度に1ステップで解決しなければならないため、並列コンピューティングが数秒で完了する可能性のあるタスクに数分から数時間がかかりました。たとえば、最初のiPhoneではシリアル・コンピューティングが使用されており、アプリやEメールを開くのに1分かかる場合がありました。現在、2011年にiPhoneで初めて使用された並列コンピューティングにより、これらのタスクが大幅に高速化されています。
コンピューティングが成熟し、より複雑な問題に取り組むにつれて、システムは瞬時に数千、さらには数百万のタスクを実行する必要があります。今日のMLモデルは、複数のプロセッサーにデプロイされた非常に複雑なアルゴリズムを使用した並列コンピューティングに大きく依存しています。シリアル・コンピューティングを使用すると、単一プロセッサーで一度に1回しか計算できないために生じるボトルネックにより、MLタスクの時間がはるかに長くなります。
並列コンピューティングと並列処理により、大規模なデータセットの数値計算が高速化され、データ分析の背後にあるインタラクティブなクエリーが可能になります。毎日100京ほどの情報が生成されているため、企業はデジタル情報を選別して、関連性の高い洞察を得るのに苦労しています。並列処理は、多くのコアを備えたコンピューターをデータ構造にデプロイし、シリアル・コンピューターよりもはるかに速くデータを選別します。
並列コンピューティングを備えたコンピューターは、シリアル・コンピューティングよりもはるかに効率的にリソースを使用できます。現在の最先端のコンピューター・システムには、複数のコアとプロセッサーがデプロイされており、一度に複数のプログラムを実行したり、より多くのタスクを同時に実行したりできます。
並列コンピューティングとは、スーパーコンピューターからポケットにあるスマートフォンまで、さまざまな種類のデバイスやコンピューター・アーキテクチャーを指します。最も複雑な状態では、並列コンピューティングは数十万のコアを使用して、新しいがん治療薬の発見や地球外知能(SETI)の探索の支援などの問題に取り組んでいます。最も単純なことでは、並列コンピューティングは、シリアル・コンピューティング・システムを使用する場合よりも速く携帯電話からEメールを送信するのに役立ちます。
大まかに言うと、並列コンピューティングでは、共有メモリー、分散コンピューティング・メモリー、ハイブリッド・メモリーという3つの異なるアーキテクチャーが使用されます。各アーキテクチャーは、すべての並列コンピューティング・アーキテクチャーの標準である独自のメッセージ・パッシング・インターフェース(MPI)上で動作します。MPIは、C++やFortranなどのプログラミング言語におけるメッセージ・パッシング・プログラムのプロトコルの概要を示しています。オープンソースMPIは、並列コンピューティング機能に依存する新しいアプリケーションやソフトウェア開発の鍵となっています。
共有メモリー・アーキテクチャーは、ノートPCやスマートフォンなど、並列コンピューティングの一般的な日常的なアプリケーションで使用されています。共有メモリー・アーキテクチャーでは、並列コンピューターは複数のプロセッサーを利用して同じ共有メモリー・リソースにアクセスします。
分散メモリーはクラウド・コンピューティング・アーキテクチャーで使用されるため、多くのエンタープライズ・アプリケーションで一般的になっています。並列コンピューティングのための分散システムでは、独自のメモリー・リソースを持つ複数のプロセッサーがネットワークを介してリンクされます。
今日のスーパーコンピューターは、分散メモリー・ネットワーク上で共有メモリー・コンピューターを組み合わせた並列コンピューティング・システムであるハイブリッド・メモリー・アーキテクチャーに依存しています。ハイブリッド・メモリー環境に接続されたCPUは、同じネットワーク上の他のユニットに割り当てられた共有メモリーとタスクにアクセスできます。
3つの主要なアーキテクチャーに加えて、その他のあまり一般的ではない並列コンピューター・アーキテクチャーは、より大きな問題や高度に専門化されたタスクに取り組むために設計されています。これには、「ベクトル」と呼ばれるデータの配列用のベクトル・プロセッサーや、GPUによる汎用計算(GPGCU)が含まれます。その1つであるCUDAは、Nvidiaが開発した独自のGPGCUアプリケーション・プログラミング・インターフェースであり、ほとんどのAIアプリケーションの基盤となるテクノロジーであるディープラーニングにとってクリティカルです。
並列コンピューティングには4種類があり、それぞれに特定の目的があります。
ビット・レベルの並列処理は、プロセッサーのワード・サイズを増やし、プロセッサーが問題を解決するために実行しなければならない命令の数を減らす手法に基づいています。1986年まで、コンピューター・アーキテクチャーは、ビット・レベルの並列処理を4ビット・プロセッサーから8ビット、16ビット、32ビット、64ビットへと増やして進歩し、各世代は前の世代よりも優れたパフォーマンスを発揮していました。おそらく、ビット並列処理の進歩の最も有名な例は、主流アプリケーションが初めて64ビットを使用したNintendo 64でしょう。
命令レベルの並列処理(ILP)は、プロセッサーが実行する命令をプロセッサーが選択する並列コンピューティングの一種です。ILPでは、リソースの最適化とスループットを向上させるために、特定のオペレーションを同時に実行するようにプロセッサーが構築されています。
タスク並列処理は、同じデータに対して同時にタスクを実行する複数のプロセッサー間でコードを並列化する並列コンピューティングの一種です。タスクの並列処理は、タスクを同時に実行することでシリアル時間を短縮するために使用されます。たとえば、パイプラインでは一連のタスクが単一のデータセットに対して実行されます。
ILPよりも高度なスーパーワード・レベル並列処理(SLP)は、インライン・コードで使用されるベクトル化の施策です。ベクトル化は、複数の同様のタスクを一度に完了するために使用される並列コンピューティング・プロセスであり、時間とリソースを節約します。SLPは、コード・ブロック内にある冗長なスカラー命令を識別し、それらを単一のスーパーワード・オペレーションに結合するために使用されます。
多くのスマートフォンは、タスクをより迅速かつ効率的に実行するために並列処理を利用しています。例えば、iPhone 14は、6コアのCPUと5コアのGPUを搭載しており、市場をリードする能力で、毎秒17兆件のタスクを実行できます。これは、シリアル・コンピューティングでは考えられないレベルの性能です。
ブロックチェーン技術は、暗号通貨、投票機、ヘルスケア、その他の多くの高度なデジタルテクノロジーアプリケーションを支えるテクノロジーであり、並列コンピューティングに依存して複数のコンピューターを接続してトランザクションやインプットを検証します。並列コンピューティングにより、ブロックチェーン内のトランザクションは一度に1つではなく同時に処理できるようになり、スループットが向上し、拡張性と効率性が高まり、さらにスケーラブルになります。
現在の最も強力なノートPC(ChromeBook、ThinkPads)では、並列処理の基盤となる複数の処理コアを備えたチップが使用されています。マルチコア・プロセッサーの例としては、Intel Core i5やHP Z8が挙げられます。これにより、ユーザーはリアルタイムでビデオを編集したり、3Dグラフィックスを実行したり、その他の複雑でリソースを大量に消費するタスクを実行したりできます。
IoT(モノのインターネット)は、インターネットに接続されたセンサーから収集されたデータに依存しています。データが収集されたら、それを分析して洞察を得て、発電所、ダム、交通システムなどの複雑なシステムが機能するように、並列コンピューティングが必要になります。従来のシリアル・コンピューティングでは、IoT(モノのインターネット)が機能するのに十分な速度でデータを選別できないため、IoT(モノのインターネット)テクノロジーの進歩には並列コンピューティングが不可欠です。
並列コンピューティングは、顔認識や自然言語処理などのAIアプリケーション向けのMLモデルのトレーニングにおいてクリティカルな役割を果たします。並列コンピューティングでは、オペレーションを同時に実行することで、データに基づいてMLモデルを正確にトレーニングするのにかかる時間を大幅に短縮します。
スペースシャトルを実行するコンピューターは、並列動作する5台のIBM® AP-101コンピューターを利用して、アビオニクスを制御し、リアルタイムでデータを監視しています。戦闘機でも使用されているこれらの強力なマシンは、1秒あたりほぼ50万件の命令を実行できます。
スーパーコンピューターは並列コンピューティングに大きく依存しているため、並列コンピューターと呼ばれることもあります。たとえば、アメリカのスーパーコンピューター「Summit」は、1秒あたり200兆回のオペレーションを処理することで、人間が物理学と自然環境についてより深く理解できるようにしています。2
IBM Spectrum LSF Suites は、分散型ハイパフォーマンス・コンピューティング(HPC)用のワークロード・マネジメント・プラットフォームおよびジョブ・スケジューラーです。
IBMのハイブリッド・クラウドHPCソリューションは、大規模で計算集約的な課題に取り組み、インサイト獲得までの時間を短縮するのに役立ちます。
ビジネスニーズに合ったクラウド・インフラストラクチャー・ソリューションを見つけ、必要に応じてリソースを柔軟に拡張します。