International Essays

即時のスーパーコンピューティング:Wolfram Compute Services開始

原文

計算のスケールアップ

例えば,Wolfram言語で計算を実行したとします.そして今度は,それをスケールアップしたいと考えているとします.おそらく1000倍,あるいはそれ以上に.そこで我々は,れを実現するための非常に洗練された方法を本日リリースしました.スケールアップした計算を単に
RemoteBatchSubmit
でラップするだけで,新しいWolfram Compute Services systemに送信されます.その後,数分後,数時間後,数日後,あるいは必要な時間が経過すると,完了したことが通知され,結果が取得できるようになります.
私は何十年にも渡り,大規模で大量の計算を行う必要がしばしばありました(通常は科学のためです).大量のデータ,何百万ものケース,蔓延する計算不可約性等がある中でです.おそらく私は,ほとんどの人よりも自宅に多くの計算資源を置いています.最近では約200コア分です.多くの場合,私はその計算資源をすべて一晩中動かし続けますが,それでもなお,もっと多くを必要とします.さて,本日,誰にとっても簡単な解決策ができました.ほぼどのような規模の計算でも,シームレスにWolfram Compute Servicesへ送って実行するだけです.
約20年に渡り,
ParallelMap
や
ParallelTable
のような,サブ計算を即座に並列化できる組込み関数をWolfram言語に備えてきました.しかし,これによって本当にスケールアップを実現するためには,計算資源が必要です.そして現在,新しいWolfram Compute Servicesのおかげで,誰でもすぐにそれを利用できるようになりました.
Wolfram Compute Servicesを可能にしている潜在的ツールは,Wolfram言語において数年前から存在していました.しかし,Wolfram Compute Servicesが今行っているのは,それらすべてを統合し, 非常に洗練されたオールインワンの体験を提供することです.例えば,ノートブックで作業し,計算を段階的に構築していると仮定します.そして最終的に,スケールアップしたい入力を与えます. 通常,その入力は計算の以前の部分に対して多くの依存関係を持っています.しかし,そのような点について心配する必要はありません.スケールアップしたい入力を取り,それをRemoteBatchSubmitに渡すだけでよいのです.Wolfram Compute Servicesが,すべての依存関係等を自動的に処理します.
さらにもう一つ重要な点があります.RemoteBatchSubmitは,Wolfram言語のすべての関数と同様に,数値表,画像,グラフ,ユーザーインターフェース,動画等,あらゆるものが表現できる記号式を扱います.したがって,得られた結果は,例えばWolfram Notebookにおいて,インポート等を行うことなく,直ちに使用できます.
では,どのような種類のマシンで実行できるのでしょうか.Wolfram Compute Servicesは,多数のオプションを提供しており,さまざまな計算や,さまざまな予算に対応しています.最も基本的なものとして,1コア,8GBのオプションがあり,これは「自分のマシンから計算を切り離して実行する」ために使用できます.より大きなメモリを備えたマシンを選択することもでき,現在は最大で約1500GBまで対応しています.また,より多くのコアを持つマシンを選ぶこともでき,現在は最大で192コアまで対応しています.さらに,これよりも大規模な並列処理を求めている場合でも,Wolfram Compute Servicesは対応できます.なぜなら,
RemoteBatchMapSubmit
は,任意の数の要素に関数をマップし,任意の数のコア上で,複数のマシンにまたがって実行できるからです.

簡単な例

では,ここで非常に簡単な例をご紹介します.これは,少し前に私が行った科学研究の一部から取られたものです.非重複の五角形をクラスタにランダムに追加する関数PentagonTilingを定義します.
PentagonTiling[steps_Integer]:=Module{unit,init,res},​​unit=Polygon[N@CirclePoints[5]];init=
[◼]
AddCandidates

[◼]
InitializePolygonAggregation
[{unit},{{1}},unit];DiscretizeGraphicsGraphicsNest
[◼]
RandomAddPolygon
,init,steps["Tiling"]
20個の五角形については,私のマシンですばやく実行できます:
In[]:=
PentagonTiling[20]
Out[]=
では,500個の五角形の場合はどうでしょうか.計算幾何は難しくなり,実行にはかなりの時間がかかるため,自分のマシンをそれに拘束したくありません.しかし,今では別の選択肢があります.Wolfram Compute Servicesを使用することです!
そして,私がしなければならないのは,計算をRemoteBatchSubmitに渡すだけです:
In[]:=
RemoteBatchSubmit[PentagonTiling[500]]
Out[]=
RemoteBatchJobObject
Provider:
Wolfram Batch »
Job type: Single
Job UUID: 1cf0b642-8a88-4fc5-b0e2-59ce2d16c25d
Input: PentagonTiling[500]
Submitted at: Tue 18 Nov 2025 12:08:32 GMT-6

すぐに,(必要な依存関係はすべて自動的に処理された状態で)ジョブが作成されます.次に,そのジョブは実行のためにキューに入れられます.そしてその数分後に,メールを受け取ります:
どのくらい時間がかかるのか分からないため,一旦別のことをします.しかし,しばらくすると,ジョブがどのように進んでいるのかを確認したくなります.そこで,メール内のリンクをクリックするとダッシュボードに移動し,ジョブが正常に実行されていることが確認できます.
私が他のことをしていると,突然,メールが来ます: