NVIDIAの最新技術でデータセンター焼肉シミュレーションしてみた
前回のあらすじ
前回の記事で、NVIDIA DSX Blueprintをビルドして動かした。RTX 4080(VRAM 16GB)でも小規模なカスタムシーンを組めば動く、という話だった。
今回はその環境を使って、もう一歩踏み込む。
※RTX4080で動かす都合である程度省略して計算していたりもするけど許してね!!
うーむ煙を出したり他の熱源が欲しい DCで焼肉するか
GB300 NVL72。NVIDIA最新のAIサーバーラック。1台あたり最大120kWの排熱。 4台並べたら480kW。もはや小さな発電所の逆バージョンだ。
この熱々のGB300に合わせて、1500Wの化け物ホットプレートとDC向け精密空調を用意した。シミュレーションで焼肉してみよう。
「データセンターで焼肉したらどうなるか」
馬鹿げた問いだが、CFD(数値流体力学)の練習台としては完璧だ。熱源、気流、煙拡散、換気——流体シミュレーションの要素が全部入っている。そしてDSX Blueprintの可視化能力を試すにもちょうどいい。

うーんOpenUSDによる肉もどき シュールだ
やったこと
GB300サーバーラック4台が稼働するミニサーバー室に焼肉用ホットプレートを設置し、CFD(数値流体力学)で温度・気流・煙の挙動をシミュレートした。
そして結果をNVIDIA DSX Blueprintで3D可視化した。
技術スタック
今回のパイプラインは2つの独立したフェーズに分かれる:
【Phase 1: シミュレーション】
DGX Spark (NVIDIA GB10 / ARM64)
└── OpenFOAM 12 で CFD 定常熱流体解析
└── 出力: CGNS ファイル(温度・速度・煙濃度)
↓ ファイル受け渡し(これだけ)
【Phase 2: 3D可視化】
RTX 4080 ワークステーション
└── NVIDIA DSX Blueprint (Omniverse Kit)
└── CGNS → IndeX ボリュームレンダリング
└── GB300ラックのUSDシーンに温度場・煙をオーバーレイ
重要: DSXはシミュレーションをやるツールではない。シミュレーション結果を「見える化」して、3D空間でラックや設備と重ねて表示するためのツール。計算はOpenFOAMがやる。DSXは結果を受け取って美しく見せる担当。
この「計算」と「可視化」の分離がDSXの設計思想であり強み。計算エンジンは何でもいい(OpenFOAM、ANSYS Fluent、独自ソルバー...)。CGNS形式で出せばDSXが食ってくれる。
部屋の設定
6m × 5m × 天井高3m のミニサーバー室。
| 機器 | スペック | 補足 |
|---|---|---|
| GB300 NVL72 × 4台 | 発熱 80kW × 4 = 320kW | フルロード120kWの67%想定 |
| ホットプレート | 1500W(15kW相当の熱源設定) | 業務用の化け物。家庭用の10倍 |
| DC向け精密空調 | 240kW 冷却 / 吹出2.0 m/s | 家庭用エアコンの80倍 |
| 換気扇 | 排気 2.5 m/s | 唯一の常識的装備 |
GB300の排熱に対抗するために、DC向け精密空調240kWを投入。ホットプレートも家庭用300Wじゃ話にならないので1500Wの化け物を持ってきた。
※シミュレーションでの主張の為に大火力でお届けしています

熱収支
発熱: 320kW(ラック4台)+ 15kW(ホットプレート)= 335kW
冷却: 240kW(DC精密空調)
────────────────
残熱: +95kW ← これが室内に残る
DC精密空調240kWを全力で回しても95kW分の熱が逃げ切れない。 GB300の排熱というのはそういうレベル。ホットプレートの15kWは全体の4.5%。文字通り「添え物」だ。
シミュレーション条件
全熱源フル稼働 + 煙発生 + 換気ON。つまり 「ちゃんと換気しながら焼肉を強行したらどうなるか」。
Phase 1: CFD計算(OpenFOAM × DGX Spark)
NVIDIAの理想ラインと今回のアプローチ
NVIDIAが描くCFDの理想パイプラインはこう:
OpenFOAM等で大量ケース計算 → PhysicsNeMoでAI代理モデル学習 → リアルタイム推論
PhysicsNeMoは「数百〜数千ケースの計算結果をAIに学習させ、新条件を1000倍速で推論する」フレームワーク。本番のAIファクトリー設計で「ラック配置を変えたら熱がどう変わるか」をリアルタイムで試したいときに真価を発揮する。
ただし今回は——焼肉の配置バリエーションを数百回変えてAIに学習させる必要がある。それはもうシミュレーションではなく狂気もしくはDC管理者では無く焼肉屋なので、素直にOpenFOAMで1発計算した。
なぜDGX Sparkか
手元にあったから。OpenFOAM 12がARM64でネイティブ動作する。90,000セルの定常解析なら44秒で終わる。GPUは使わない(CPUソルバー)。
正直ノートPCでも回せるスケールだが、DGX Sparkには各種シミュレーションや解析をAIが自律駆動出来るようにしているので手間が省けるので
境界条件
- ラック4台の発熱:
fvModelsのsemiImplicitSourceで領域指定 - ホットプレート: 固定温度境界(503K = 230℃)
- 煙:
scalarTransportfunctionObjectでパッシブスカラー輸送 - 乱流モデル: k-ω SST(室内気流の標準選択)
- 換気扇: ON(排気2.5 m/s)
- DC精密空調: ON(240kW / 吹出2.0 m/s)
結果
| フィールド | 値 |
|---|---|
| 温度範囲 | 292〜359K |
| 最高風速 | 1.97 m/s |
| 煙濃度(最大) | 0.014 |
| 計算時間 | 44秒(90,000セル / 500反復) |
換気ありでもラック排熱が室内気流を完全に支配している。ホットプレートの上昇気流は見えるが、ラック4台320kWの前では「添え物」。エアコンの横流れに乗って煙は換気扇側に排出される。なんとか「運用可能」な状態——ただし人間が快適かは別の話だ。

ちゃんとホットプレートからも熱源が上に登っているが約8倍くらいの電気を食うGB300には勝てない
CGNS出力
OpenFOAMのVTK出力をh5pyでCGNS形式に変換:
# vtk_to_cgns.py(抜粋)
# OpenFOAM VTK → CGNS (HDF5) 変換
# フィールド: Temperature, VelocityMagnitude, SmokeConcentration
ここで一つハマった。CGNSのHDF5ノードにはtype属性(R8/I4等)とflags属性(int32)が必須なのだが、h5pyで素直に書くと欠落する。下流のDSX(omni.cae.cgns)が無言で読み込み失敗し、ボリュームが空になる。公式CGNSファイルとdiffして初めて気づいた。
Phase 2: 3D可視化(DSX Blueprint × RTX 4080)
DSXの役割を正確に言うと
DSX Blueprint = 「データセンターの3Dデジタルツイン表示器」。
やってくれること:
- USDシーン内のGB300ラックをフォトリアルに描画
- CGNSの数値データをIndeXでボリュームレンダリング
- その2つを同じ3D空間に重ねて表示
やらないこと:
- 流体シミュレーション(それはOpenFOAM等の仕事)
- メッシュ生成(それはblockMesh等の仕事)
この**「計算は外でやって、見せるのはDSX」**という分業がポイント。逆に言えば、自分の好きなソルバーで計算してCGNSで出せば、DSXがきれいに見せてくれる。
NVIDIAの理想ラインでは、ここにさらにOmniverse Cloud + WebRTCストリーミングが加わって、ブラウザからリアルタイムで3Dシーンを操作できる構成になる。今回はRTX 4080のローカル表示だが、クラウド構成にスケールする設計は最初から入っている。
カスタムシーンの構成
bbq_room.usda(自作シーン)
├── sublayer: bbq_cfd_layer.usda ← CFD温度場/煙の表示設定
├── reference: du_gb300s.usd ← GB300ラック4台
└── define: 部屋/テーブル/ライト ← 自前メッシュ
DSX公式のフルシーン(35GB)はRTX 4080だと辛いので、必要なアセットだけ切り出してカスタムシーンを組んでいる。詳細は前回の記事参照。
ちなみにDSX自体の推奨はRTX6000だよ
IndeXボリュームレンダリング
CGNSの温度場をカラーマップで可視化:
- 温度: 青(25℃)→ 緑 → 黄 → 赤(55℃)
- 煙: 透明(0)→ グレー半透明(高濃度)
焼肉の上昇気流が明確に色で見える。ラック排熱のホットアイルは真っ赤。煙がエアコンの横流れに乗って換気扇側に流れていく様子がうかがえる(温度のオーバーライド優先しているため見づらい)。
数字の表だけでは伝わらない「気流の構造」が3Dで伝わる。これがDSXの価値。
結論: 焼肉してはいけない(知ってた)
| 発見 | 内容 |
|---|---|
| GB300は焼肉より熱い | ラック320kW vs ホットプレート15kW。焼肉の存在感が薄い |
| DC精密空調の限界 | 240kWでも95kW逃げ切れない。GB300の排熱はマジ |
| 煙はなんとか排出される | 換気ONなら煙はエアコン気流に乗って換気扇側へ |
| DSXで見ると一発で分かる | 表の数字より3D可視化のほうが伝達力が段違い |
技術的ハマりポイント
| 問題 | 原因 | 対処 |
|---|---|---|
| IndeXボリュームが空 | CGNS HDF5にtype/flags属性欠落 |
vtk_to_cgns.pyでcgio準拠に修正 |
| CGNS直接payloadでクラッシュ | omni.cae.cgnsの自動変換が暴走 | CAEスキーマ準拠のUSDラッパーで包む |
| 温度場の位置ズレ | メートル系→cm系の座標スケール | 親XformにScale=(100,100,100) |
| dsx.kit起動失敗 | 非ASCII文字 | 日本語コメント禁止(ASCII専用) |
まとめ: パイプラインの全体像
1. シナリオ設計 → gen_of_case.py でOpenFOAMケース自動生成
2. CFD計算 → DGX Spark / OpenFOAM 12(44秒)
3. 形式変換 → vtk_to_cgns.py でCGNS出力
4. 3D可視化 → DSX Blueprint / IndeX ボリュームレンダリング
DSXは「Phase 4」だけを担当する。でもその「見せる」部分があるかないかで、結果の説得力が全く変わる。GB300の排熱がどう流れて、煙がどこに溜まるか。表の数字を見ても「ふーん」だが、3Dで見ると「これはダメだ」になる。
シミュレーションとビジュアライゼーションは別物。DSXはその橋渡しをする。
そしてDSXは電気からネットワークに熱処理に流体にありとあらゆるものをつなげるハブである
それが今回一番伝えたかったこと。焼肉はだしに使っただけだ。
後、DSXはAIと相性が良いということを覚えておいてくれ
環境情報
| 項目 | Phase 1(CFD) | Phase 2(可視化) |
|---|---|---|
| マシン | DGX Spark | Threadripper |
| GPU | NVIDIA GB10 | RTX 4080 (16GB) |
| ソフト | OpenFOAM 12 | DSX Blueprint v2.0.0 |
| OS | Ubuntu 24.04 (ARM64) | Windows 11 Pro |
| 計算時間 | 30〜40秒/シナリオ | リアルタイム表示 |

