WebAssemblyでマルチスレッドによる並列処理を可能にする「wasi-threads」仕様の提案、ByteCode Allianceが明らかに

今回は「WebAssemblyでマルチスレッドによる並列処理を可能にする「wasi-threads」仕様の提案、ByteCode Allianceが明らかに」についてご紹介します。

関連ワード (仕様、処理、対応等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


WebAssemblyにおける業界標準仕様などを推進する団体「ByteCode Alliance」は、WebAssemblyでマルチスレッドによる高速な並列処理を可能にする「wasi-threads」仕様を提案したことを明らかにしました。

fig

W3Cでのマルチスレッド仕様策定は現在フェーズ3

WebAssemblyは、Webブラウザ上で高速に実行可能なバイナリフォーマットとしてW3CのWebAssembly Working Groupで標準化が行われており、現在でも新たな機能追加や性能向上のための議論が行われています。

現時点でWebAssemlbyはシングルスレッド処理のみ可能ですが、W3Cの仕様策定の作業の中にはマルチスレッドを実現する「threads」の議論が進められており、フェーズ1のFeature Proposal(機能提案)、フェーズ2のProposed Spec Text Available(仕様提案書作成)の段階を終え、現在はフェーズ3のImplementation Phase(実装段階)に入っています。

このあとはPhase 4のStandardize the Feature(機能の標準化)そして最後のPhase 5となるThe Feature is Standardized(標準化完了)となるわけです。

ただしByteCode Allianceの説明によると、このthreads仕様では複数のスレッドから共有メモリへアクセスする際の命令などは含まれているものの、新しいスレッドを作成するSpawnの実装は、その詳細が実装者に任されているとのことです。

そのため、Webブラウザ上のWebAssemblyランタイムではJavaScriptの処理をマルチスレッド化するWeb Workerの機能を用いてWebAssemblyのスレッドをSpawnする実装となっていますが、WasmTimeなどに代表されるスタンドアロンのWebAssemblyランタイムでは、よりシンプルな実装を選択できる余地があることになります。

そこで議論された末にByteCode Allianceが今回提案したのがスレッドを作成するシンプルなAPI仕様「wasi_thread_spawn」です。

WASIのレイヤでスレッド作成APIを実装

WASI(WebAssembly System Interface)は、ByteCode Allianceが標準化と実装を進めている、WebAssemblyランタイムにおいてOSなどプラットフォームのAPIや機能を抽象化するための仕様です。

W3CがWebAssembly本体の仕様を策定しているのに対して、WASIは、例えばファイルをオープンする処理のようにOSごとに異なるAPIをWebAssemblyランタイムのレイヤで抽象化することで、WebAssemblyのアプリケーションが特定のOSなどのプラットフォームに依存することを回避し、単一のWebAssemblyアプリケーションがWindowsでもLinuxでもmacOSでもiOSでも、どのプラットフォーム上でも実行可能にする、というものです。

ByteCode AllianceはWASIの実装における事実上のリファレンス実装ともいえる、WebAssemblyランタイムの「WasmTime」もオープンソースで開発しています。

今回、スレッドを作成する「wasi_thread_spawn」も、このWASIのAPIとして提案されました。これにより、どのOSやプラットフォームで実行されるWebAssemblyアプリケーションであっても、WASIに対応したWebAssemblyランタイム上でWASIに対応したプログラミングが行われているWebAssemblyアプリケーションであれば、スレッドを作成するためのSpawnを同じように呼び出せるようになる見通しです。

ByteCode Allianceは、WebAssemblyでマルチスレッドが可能になることで、並列処理による高速な処理が可能になることや、より幅広い種類のソフトウェアをWebAssemblyでサポートできるようになることが期待できるとしています。

wasi_thread_spawnを含むWASIのスレッド機能は、最新のWASI SDK「wasi-sdk-20+threads」で利用可能になっています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
LegalOn Technologies、「LegalForce」で「オンラインエディター」機能を正式提供
IT関連
2024-01-21 22:53
ユナイテッドアローズ、請求書管理サービスを導入–インボイス制度に伴う業務負担を軽減
IT関連
2023-11-09 05:29
漫画の海賊版が再び拡大 サイト相次ぎ被害急増、「漫画村」超す
IT関連
2021-03-30 08:45
秋田県仙北市とアステリア、生成AI活用などを発表–人口減少に備えた業務品質向上に
IT関連
2024-01-05 08:52
攻撃的にならずに、攻撃的という印象を与えずに–ビデオ会議で意見を上手に話す
IT関連
2021-01-17 14:24
マイクロソフト、行動が特徴的なランサムウェア「Prestige」について警告
IT関連
2022-10-19 16:32
アニメ音楽の最先端行く“音の仕掛け人” 「攻殻」音楽プロデューサーが語る「エヴァ」庵野秀明監督との縁
IT関連
2021-07-14 04:42
今週の記事ランキング(2021.2.21〜2.25)
IT関連
2021-02-27 06:34
汚れたキーボードをきれいにしてみた–キーキャップを外して徹底的にクリーニング
IT関連
2024-06-23 07:31
高配当利回り株で資産形成:次の景気後退はいつか?どう乗り切るか?(その2)
IT関連
2021-07-01 22:42
価格約11万円、レノボがARMベース「Snapdragon 8c」搭載Windowsノート「IdeaPad 4G」を4月9日発売
ハードウェア
2021-04-07 08:11
チャールズ・ゲシキとジョン・ワーノックが拓いたデスクトップとデジタル、2つのパブリッシング革命を振り返る (1/2 ページ)
イラスト・デザイン
2021-04-28 07:33
ラウンドアップ:進むデジタルマーケティングへの生成AI活用–業務はどう変わる
IT関連
2023-12-31 00:42
「invox電子帳簿保存」、基本料金に含む書類保管件数が100万件に増加へ
IT関連
2024-01-24 07:17