3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

並列処理の仕組みとパフォーマンスの勘所

1. 並列処理とは?(What)

並列処理(Parallelism) = 複数タスクを物理的に同時刻に実行
並行処理(Concurrency) = 単一コアでもタスクを高速切替し擬似的に同時進行

特性 並列処理 (Parallelism) 並行処理 (Concurrency)
実行方法 物理的に同時実行 見かけ上の同時実行(タスク切替)
必要ハード 複数 CPU コア 1 コアでも可
主目的 スループット向上 応答性維持/資源活用
JS 代表例 Web Workers async/await

ポイントasync/await は I/O 待ちを非ブロック化する並行処理。CPU を 100 % 使う 並列化 は別物です。


2. なぜ並列処理が必要なのか?(Why)

  1. マルチコア CPU を活かす – コア数増加時代の性能ボトルネック解消
  2. UI フリーズ回避 – メインスレッドを重い計算から解放
  3. 大量タスク高速化 – 画像/動画処理、暗号化、機械学習などの CPU バウンド処理

3. いつ・どこで使うのか?(When / Where)

When(いつ)

  • 大規模データ集計・ETL
  • 画像/動画フィルタ&エンコード
  • 3D レンダリング・物理シミュレーション
  • ML モデル学習/推論
  • 暗号化/復号

Where(どこで)

  • ハード : マルチコア CPU / GPU
  • OS : マルチプロセス/マルチスレッド
  • アプリ : Web Workers、各言語のスレッドプール

4. 誰が・どうやって実現するのか?(Who / How)

4-1. マルチプロセス方式 = 別店舗を並列営業

  • 完全独立メモリ → 高安全性
  • IPC 必須 → データ転送コスト大
  • プロセス生成/破棄 = 重い

4-2. マルチスレッド方式 = 同じ厨房でシェフが協業

  • メモリ共有 → 超高速連携
  • 競合状態/デッドロック対策必須
  • スレッド生成/切替 = 軽量

4-3. JavaScript の選択肢 — Web Workers

  • メインと メモリ非共有 → 競合ゼロ
  • 通信は postMessage() / onmessage
  • 大容量データは Transferable Objects でゼロコピー

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?