スポンサーリンク

【応用情報技術者試験】コンピュータシステムの構成を学ぼう!     ~第2章~システムの性能

システムの性能とは、処理速度(レスポンスタイム、スループット)、同時接続数データ量などを数値で評価する基準のことで、RASIS(信頼性・可用性・保守性・保全性・セキュリティ)のような安定性や可用性も含まれ、目的(用途)に合わせてベンチマークテストなどで測定・評価されます。 

画像参照:https://e-words.jp/w/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0.html

MIPS

MIPS(Million Instructions Per Second)とは、コンピュータが1秒間に実行できる命令の数を100万単位で表した処理速度の単位で、CPUなどのプロセッサ性能の指標です。値が大きいほど処理能力が高いことを示し、10MIPSなら1秒間に1000万個の命令を実行できることを意味します。 

ポイント

  • 意味: 「1秒間に何百万命令できるか」を示す。
  • 用途: CPUやMPU(マイクロプロセッサ)の性能評価に使われる。
  • 計算: 平均命令実行時間の逆数(1秒 ÷ 平均命令実行時間)で求められることが多い。
  • 注意点: 命令セット(命令の種類)が異なるプロセッサ同士では単純比較できず、より正確な比較にはベンチマークテストが用いられる。
  • 関連単位: 10億単位はGIPS(Giga Instructions Per Second)、1000単位はKIPS(Kilo Instructions Per Second)などがある。 

具体例

  • 平均命令実行時間が20ナノ秒(20×10⁻⁹秒)のコンピュータは、1秒 ÷ 20ナノ秒 = 50,000,000命令/秒 → 50 MIPS と計算されます。 

現在では

  • MIPSは古い指標で、現代のコンピュータの性能評価ではSPEC(Standard Performance Evaluation Corporation)などの標準化されたベンチマークテストが主流となっていますが、歴史的な比較や特定の分野で参照されることがあります。 

命令ミックス

命令ミックスとは、コンピュータの処理能力を測定するために使われる、「よく使われるCPU命令の種類とその実行割合(構成比)」の組み合わせのことです。CPUは命令ごとに必要な処理時間(クロック数)が異なるため、単に命令数を数えるだけでは実態を反映しにくい問題を解決するため、実際のアプリケーションを想定した標準的な命令のセットと割合(例:ギブソンミックス、コマーシャルミックスなど)を用いて性能を評価します。 

命令ミックスが使われる理由

  • 命令ごとの処理時間の違い: 割り算のような複雑な命令は多くのクロック数を必要とし、足し算のような簡単な命令は少ないクロック数で済みます。
  • 実態に即した性能評価: どの命令がどれくらいの頻度で実行されるか(命令ミックス)を考慮することで、より現実に近い処理能力(MIPSなど)を算出できます。 

代表的な命令ミックスの例

計算方法の例

  1. 各命令の「クロック数(CPI: Cycles Per Instruction)」と「出現頻度(%)」を掛け合わせる。
  2. それらをすべて合計して「平均命令実行クロック数(Average CPI)」を求める。
  3. この平均値を使ってMIPS(Million Instructions Per Second)などを算出する。 

このように、命令ミックスは、コンピュータの性能を「特定の命令の集まりをどれだけ速く処理できるか」という観点で、より客観的かつ比較可能な指標として評価するために不可欠な概念です。 

平均実行クロック数からMIPSを計算

平均実行クロック数(または平均命令実行時間)からMIPS(Million Instructions Per Second:1秒間に実行できる命令数)を計算するには、1秒を平均命令実行時間で割り、結果を100万で割って「MIPS」単位に変換します。具体的には、MIPS = (1秒 ÷ 平均命令実行時間) ÷ 1,000,000、またはMIPS = 10億 ÷ 平均命令実行時間(ナノ秒単位)という公式で計算できます。

計算のポイント

  • MIPSの定義: 1秒間に実行できる「100万命令」の単位です。
  • 平均命令実行時間 (AET): 1つの命令を実行するのにかかる平均時間(例:20ナノ秒)。
  • 計算方法:
    1. 1秒あたりの命令実行回数1秒 ÷ 平均命令実行時間
    2. 単位変換10億ナノ秒(1秒) ÷ 平均命令実行時間(ナノ秒)で直接MIPSを求めることも可能。 

計算例

  • 平均命令実行時間が20ナノ秒 (20ns) の場合:
    • 1秒 ÷ 20ナノ秒 = 50,000,000回
    • これを100万単位にすると 50 MIPS になります。 

関連する指標

  • クロック周波数: 1秒間にクロックが刻まれる回数 (Hz)。
  • CPI (Cycles Per Instruction): 1命令あたりに必要なクロック数。
  • 平均命令実行時間 = CPI × クロック周期 (クロック周期はクロック周波数の逆数) の関係性も重要です。 

FLOPS

FLOPS(Floating-point Operations Per Second)は、コンピュータが1秒間に実行できる浮動小数点演算の回数を示すコンピュータの処理性能の指標です。科学技術計算やAI、機械学習などの分野で性能評価に用いられ、スーパーコンピュータや高性能GPUの性能を示す際によく使われます。MFLOPS(メガフロップス)、GFLOPS(ギガフロップス)、TFLOPS(テラフロップス)、PFLOPS(ペタフロップス)などの単位が使われ、値が大きいほど高性能であることを意味します。 

ポイント

  • 意味: 1秒あたりの浮動小数点演算回数。
  • 用途: コンピュータ(特にスーパーコンピュータ、GPU)の処理能力の指標。
  • 単位: MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPSなど。
  • 「flops」と「FLOPs」の違い:
    • FLOPS (大文字S): 1秒間の処理能力。
    • FLOPs (小文字s): モデル学習に必要な総演算量(計算の複雑さ)。
  • 精度: 扱う数値の精度(単精度、倍精度など)によって性能が異なるため、明記されることが多い。 

具体例

  • 1 GFLOPS (ギガフロップス) = 10億 FLOPS。
  • 1 TFLOPS (テラフロップス) = 1兆 FLOPS。
  • 最新のGPUやスーパーコンピュータでは、数TFLOPSから数百PFLOPS(1京回以上)の性能を持つものもあります。 

この指標は、ディープラーニングモデルの設計や、ハードウェア選定の際に、必要な計算リソースを見積もるために不可欠です。1000倍をキロ(k)、100万倍をメガ(M)、1兆倍をテラ(T)と数えます。 

スループット

スループットとは、一定時間あたりにシステムやネットワークが処理できるデータ量や仕事量のことで、処理能力や通信速度の指標となります。数値が高いほど高性能で、単位はbps(ビット毎秒)などが使われ、「どれだけ多くの仕事をこなせるか」を示し、「レスポンスタイム(応答速度)」とは異なります。 

ポイント

  • 意味: コンピューター、ネットワーク、データベースなどが一定時間(例: 1秒間)に処理できるデータ量やタスクの件数。
  • 単位: bps(ビット毎秒)、kbps、Mbps、pps(パケット毎秒)など。
  • 種類:
    • 理論スループット: 仕様書に記載された理論上の最大値。
    • 実効スループット: 実際に測定される値で、遅延(レイテンシ)などの影響を受ける。
  • 類似・関連用語:
    • レイテンシ(遅延): 処理要求から応答までの時間(応答速度)。
    • 帯域: 通信回線の最大容量。
  • 重要性: システム設計や性能評価、ネットワーク最適化において重要な指標で、コンテンツ配信の高速化やユーザー体験向上に直結する。 

スプーリング

スプーリングとは、コンピュータと低速な周辺機器(プリンタなど)との処理速度の差を埋めるため、データをディスクなどの記憶領域に一時的に溜め込み(スプール)、機器の準備ができたタイミングで少しずつ転送する仕組みで、CPUの待ち時間を減らし、システム全体の効率(スループット)を向上させます。これにより、コンピュータは印刷中でも他の処理を継続でき、印刷ジョブの管理(優先順位設定など)も可能になります。 

仕組みのポイント

  • 一時保存(バッファリング): 印刷データなどをディスク(スプール領域)に一旦書き込みます。
  • 並列処理: CPUは印刷データの転送を待つことなく次の処理へ進み、プリンタは自分のペースでディスクからデータを受け取ります。
  • 効率化: 速度の遅い機器のためにCPUが待機する時間をなくし、システム全体の処理能力を高めます。 

具体例と用途

  • 印刷スプーリング: 複数の印刷ジョブをキュー(待ち行列)に溜め、順次印刷する。これにより、印刷中でも他の作業が可能です。
  • メールサーバー: 大量のメールデータを一時的に保存し、配送遅延を防ぎます。
  • システム全体: CPUとI/O(入出力)装置の速度差を緩和し、複数のタスクを同時並行で効率的に処理するために使われます(Simultaneous Peripheral Operations On-Lineの略という説も)。 

メリット

  • CPUの有効活用: CPUが低速なI/O装置の完了を待つ時間を削減し、より多くのタスクを処理できます。
  • 生産性向上: ユーザーは印刷完了を待つことなく次の作業に移れるため、作業効率が向上します。
  • 柔軟な管理: 印刷ジョブの優先順位変更や一時停止、キャンセルなどが可能になります。 

レスポンスタイムとターンアラウンドタイム

ターンアラウンドタイムは「仕事の依頼(投入)から完了まで」の全時間、レスポンスタイムは「要求(リクエスト)を出してから最初の応答が返ってくるまで」の時間で、レスポンスタイムはターンアラウンドタイムの一部です。つまり、レスポンスタイムはサーバ処理時間、ターンアラウンドタイムは入力・処理・出力の全工程にかかる合計時間で、レスポンスタイムが短いほど、システムは素早く反応し、ターンアラウンドタイムが短いほど、利用者は仕事全体の完了までが早いと感じます。

違いのポイント

  • レスポンスタイム(応答時間):「要求開始」から「最初の応答開始」まで。
  • ターンアラウンドタイム(周回時間):「要求投入」から「処理完了(結果出力完了)」まで。

具体例(Webサイト閲覧)

  1. ユーザー:「このページをくれ」とリクエストを出す(要求開始/投入)。
  2. サーバー:リクエストを受け取り、処理を開始する。
  3. サーバー:「はい、ページデータです」と返答を送り始める(最初の応答開始)。
    • ここまでがレスポンスタイム
  4. ユーザーのPC:データを受け取り、画面表示処理を行う(クライアント側の処理)。
  5. ユーザーのPC:画面にページが表示され、仕事が完全に終わる(処理完了/結果出力完了)。
    • 「要求開始」から「画面表示完了」までがターンアラウンドタイム

補足
レスポンスタイム:主にオンライントランザクション処理システムの性能を表す際に使用される。
ターンアラウンドタイム:主にバッチ処理システムの性能を表す際に使用される。

スケールアップとスケールアウト

スケールアップは、1台のサーバーの性能(CPU、メモリなど)を強化して処理能力を上げる方法(垂直スケーリング)です。スケールアウトは、サーバーの台数自体を増やし、複数のサーバーで処理を分散させる方法(水平スケーリング)で、拡張の方向性が異なります。スケールアップはシンプルで導入しやすいが限界があり、スケールアウトは高い拡張性と可用性を持つが複雑で、用途や予算に応じて使い分けたり組み合わせたりすることが重要です。

スケールアップ

  • 方法:1台のサーバーのCPU、メモリ、ストレージなどのスペックを向上させる。
  • メリット:実装が比較的容易で、設定の手間が少ない。
  • デメリット:物理的な限界があり、高性能化にはダウンタイム(停止時間)が必要な場合がある。
  • 適したケース:データベースや、単一サーバーで高い処理能力が求められるシステム。

スケールアウト

  • 方法:同じ構成のサーバーを複数台追加し、負荷を分散させる。
  • メリット:ほぼ無限の拡張性と高い可用性(1台故障しても他でカバー)を実現できる。
  • デメリット:サーバー台数分のコストや管理の手間が増える。
  • 適したケース:Webサーバー、検索エンジンなど、多数の単純な要求を並列処理するシステム。

どちらを選ぶべきか

  • システムの特性:サーバー間の連携が少なく並列処理が可能な場合はスケールアウト、データの整合性が重要な場合はスケールアップが有利な傾向。
  • クラウド時代:必要な時に増減しやすいスケールアウトが主流になりつつある。
  • 現実:どちらか一方ではなく、両方を組み合わせて最適なシステムを構築することが多い。

ベンチマークテスト

ベンチマークテストとは、コンピューターやソフトウェアの性能(処理速度、グラフィック能力など)を測定し、数値(ベンチマークスコア)で評価・比較するためのテストで、専用ソフト(ベンチマークソフト)を使います。CPU、GPU、メモリ、ストレージといった各パーツの性能評価や、システム全体の快適さを測るのに用いられ、ゲーム、動画編集、事務作業など用途に応じた性能確認に役立ちます。 

目的と種類

  • 目的: スペック表だけでは分からない「実際の速さ」や「快適さ」を数値化し、PCの性能を客観的に把握すること。
  • 対象: CPU、GPU、メモリ、ストレージなど特定のパーツ性能。
  • 種類:
    • 総合ベンチマーク: PCMarkなど、日常作業(ウェブ閲覧、オフィス作業など)の快適さを測る。
    • 3Dベンチマーク: 3DMarkなど、3Dグラフィック性能(ゲーミング性能)を測る。
    • ストレージベンチマーク: CrystalDiskMarkなど、SSD/HDDの読み書き速度を測る。
    • CPUベンチマーク: Cinebenchなど、CPUの処理能力を測る。 

活用と注意点

  • 活用: 購入時の性能比較、自作PCの動作確認、ゲームや作業が快適にできるかの判断基準にする。
  • 注意点:
    • テスト環境や条件(ソフトウェアのバージョン、設定など)でスコアは大きく変動する。
    • スコアの数値だけで性能の優劣を決めつけず、自分の用途に合ったテスト結果を重視する。 

代表的なベンチマークソフト

  • 3DMark: 3Dグラフィック性能(GPU性能)。
  • Cinebench: CPU性能。
  • CrystalDiskMark: ストレージ性能。
  • PCMark: 総合的な日常作業性能。
  • ゲームソフト: 「FF14」「DQ10」など、ゲーム自体が提供するベンチマーク機能。 

これらのツールを使うことで、PCの「実力」を数値で把握し、目的に合った最適なPC選びや環境構築に役立てられます。 

コメント