# Maxwell HPC

## HPC Introduction

HPC是什麼呢？HPC其實是ANSYS軟件中的加速運算的功能，有效的利用高速電腦多核心CPU與GPU來進行行列運算、網格生成等工作。這邊定義的多核心，可以是自己電腦也可以是區域網路內的電腦。讀者可以參考 [Ansys HPC Introduction](https://eeman.gitbook.io/ansys-hpc-introduction)了解更多細節。

Ansys AEDT 中的 HPC License 種類主要有兩種：HPC Workgroup 和 HPC Pack，使用時要先指定 HPC License 的類別。但在台灣只有販售 HPC Pack，所以台灣的使用者請選擇 Pack。

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FgW7m53o30REHD7txcog1%2Fimage.png?alt=media&#x26;token=62295fc4-4a1c-4d85-bef3-b9e37095ee7a" alt="" width="563"><figcaption><p>圖1-12</p></figcaption></figure>

{% hint style="info" %}
從 2024 R2 版本開始，HPC License 多了 Auto 的預設選項。讓使用者更方便的使用，不需要特別設定購買的 HPC 種類。
{% endhint %}

在 Maxwell 中，Ansys 提供了DSO、FS、DDM、TDM、GPU 的 HPC 加速運算技術(如圖1-12所示)，在不同的求解器中，可以選擇使用。雖然內建有 Auto 的選項，但要提醒讀者，部分功能建議用手動作選取。同時在 AEDT 的 HPC 選項中，我們也能建立自己常用的幾個設定做切換使用。

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FbieuX21n72eBZut7yOjc%2Fimage.png?alt=media&#x26;token=d5ea0c7b-f954-4b59-b142-4e58a245854b" alt=""><figcaption><p>圖1-13</p></figcaption></figure>

## Optimetrics Variations

在HPC定義中， 單一節點分析是指使用單一台電腦進行分析，透過內建的多核心來縮短分析時間；而多節點分析則是利用多台電腦共同運算。使用 HPC 能發揮現代電腦強大的運算能力。

在 Maxwell 中，Optimetrics Variations 提供多參數的同時平行運算，能夠對各個求解器參數進行掃描，其使用的 DSO 的技術。在一些模擬應用情況下，需特別注意設定，例如 Eddy Current 與 Transient Solvers 的應用，請參考以下說明。

{% hint style="info" %}
參數化的平行分析使用的DSO feature。例如我們有兩個HPC Pack License，會只能取用3個參數掃描，且每個參數掃描最多只能用到4個核心，所以使用參數掃描，至多只能設到12核心，<mark style="color:red;">**與HPC 其他 feature 使用的核心數不同，請特別小心。**</mark>核心數的計算可以使用 [DSO License Calculator 網頁](https://webapps.ansys.com/era/ssosupport/parametric)。
{% endhint %}

## HPC on Eddy Current Solver

當分析案件是單一頻率且多變數，並使用 Eddy Current Solver 時（如圖 1-14），可以勾選 Optimetrics Variations 來啟用多核心同時處理多參數的並行分析。以下案例中使用了 2 個 HPC Packs（36 核心）。未使用時分析需耗時 29 分鐘，使用後則縮短至約 9 分鐘。需要特別說明的是，縮短的時間會根據案件的複雜度、核心數量和掃描參數量而有所不同。如果您的參數量越多，節省的時間也會越顯著。

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FIkfI36XsZR3EnIPZ7inL%2Fimage.png?alt=media&#x26;token=44cd1c44-0e98-4111-9adf-f084756c37ae" alt=""><figcaption><p>圖1-14</p></figcaption></figure>

Eddy Current Solver 支援頻率的 HPC 求解，讓電腦能夠同時利用多核心計算不同頻率的場分析。接下來，筆者將介紹第二個案例，當涉及多頻率應用時，可在 HPC 選項中勾選 Frequencies。以此案例來說，啟用多核心後，計算時間可以從 30 分鐘縮短至 5 分鐘。如果是使用 Eddy Current Solver，建議不勾選 Auto Setting。

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FkaMqx2I5JdStW67jbrEh%2Fimage.png?alt=media&#x26;token=5c01e70b-53b4-4c3b-abdb-f9971d942925" alt=""><figcaption><p>圖1-15</p></figcaption></figure>

{% hint style="info" %}

* <mark style="background-color:green;">**如果是Eddy Current Solver，建議不勾選Auto Setting。**</mark>
* Tasks 的數量可以自行調整。如果是複雜的案例，建議減少 Tasks 的數量，讓更多的核心專注於計算單一 Task。
* <mark style="background-color:red;">**在中小型案件中，建議不勾選 Solution Matrix，**</mark>因為 Solution Matrix 會啟用 DDM 計算，這在中小型模擬中反而會增加計算時間。
  {% endhint %}

第三個案例涉及多參數與多核心分析。當面臨這種情況時，該如何選擇呢？

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FXcTd4QTWzjk2zhV1yxKb%2Fimage.png?alt=media&#x26;token=84274d40-1152-4f55-bd00-070bd1238cd7" alt=""><figcaption><p>圖1-16</p></figcaption></figure>

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FCMOiZnw0lPS6sQz7xUqW%2Fimage.png?alt=media&#x26;token=612f2cfa-dc8b-4c27-888b-b701c49c6646" alt=""><figcaption><p>圖1-17</p></figcaption></figure>

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2FLi2ZlS8w0aDF5f8Za7jH%2Fimage.png?alt=media&#x26;token=f122080c-417b-4014-8972-56713480f639" alt=""><figcaption><p>圖1-18</p></figcaption></figure>

根據圖 1-16 到 1-18 的案例，筆者的建議如下：

* 當多參數與多頻率 HPC 同時啟用時，系統會優先使用多參數 HPC。因此，建議將 Tasks 針對多參數進行分析。
* 多參數分析是使用 DSO Feature，如上面所提及，有核心數限制，使用時請特別注意電腦的 HPC License 數量。
* <mark style="color:red;">如果分析案件中頻率點數較多，建議僅啟用頻率的 HPC，</mark>這樣會更有效提高運算速度。

以上是筆者的測試結果，但讀者應根據自己的分析案件進行測試，再決定設計案 HPC 的設定。

## HPC for Transient Solver

Maxwell 的 TDM 功能可以在時域計算時同時計算多個時間步長群，而不是逐個時間步長按順序計算，這能大幅縮短暫態模擬的時間。然而，HPC 並不能在所有暫態模擬中使用。不過，在新版本中對其支援度有所提升。例如，在 Maxwell 2022R2 版本中，HPC 尚未支援與 Twinbuilder 的協同模擬或外電路激勵的暫態模擬，但在更新版本中，這些功能逐漸得到了補足。

TDM 加速效果參考 [Power Busbar Design 章節](https://eemans-organization.gitbook.io/power-busbar-design/busbar-design-workflow/busbar-current-distribution-simulation)，如圖 1-19 所示，使用 HPC 功能可以將模擬時間從 6 天縮短至 4.15 小時，這是一個顯著的模擬速度提升。

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2Fehl8duJSfCGdY90NmHIS%2Fimage.png?alt=media&#x26;token=dbb80817-3405-4794-b7b5-89637c556c09" alt=""><figcaption><p>圖1-19</p></figcaption></figure>

## <kbd>核心數的選擇</kbd>

如果有HPC的License，建議搭配適合的硬體。以CPU核心來說，我們在系統中常常可以看到核心數目與邏輯處理器，例如圖1-20。

<figure><img src="https://2137601541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgZLyKw9vE3WzJo8pjiF2%2Fuploads%2Fism9s1O1ckiOFwIXHiey%2Fimage.png?alt=media&#x26;token=8374d8b3-a989-46b1-a868-18f58259709c" alt=""><figcaption><p>圖1-20</p></figcaption></figure>

筆者先就這兩點來做介紹：

* 核心數是實體核心，每個核心可以獨立執行指令。 就像一間廚房裡有多位廚師，每個廚師都能獨立完成一道菜。 如圖顯示「核心數目: 8」，表示這顆處理器有 8 個實體運算核心。
* 邏輯處理器 是指作業系統看到的「可同時執行任務的執行緒數量」，每個實體核心若支援「超執行緒技術」，可以同時處理 2 個執行緒，讓作業系統以為它是兩個邏輯核心。&#x20;
* 圖中顯示「邏輯處理器: 16」 ，代表核心支援超執行緒（通常是 1 核 → 2 執行緒）。&#x20;
* 如果是標準 Intel 或 AMD 架構，8 核通常會是 16 執行緒（8×2）。但有些硬體的數目並不是剛好兩倍，此時有可能是某些核心未啟用 SMT、或是架構為異質架構（如大小核的混合設計）。

我的結論如下，原則上會實體核心是最好的，如果評估購買新硬體，優先考量實體核心。但如果是既有的硬體支援超執行緒技術，建議用一兩個案例在您的電腦測試看看哪種設定(都用實體核心或開啟超核心執行緒)，評估較適合您使用。
