ARM動作確認

ARM64命令セット Armv8 CPUな Ampere Altra Q80-30 搭載サーバ GIGABAYTE E252-P31 をテストしています。
https://www.gigabyte.com/jp/Enterprise/Edge-Server/E252-P31-rev-100

E252-P31 (rev. 100) - Edge Servers
GIGABAYTE E252-P31



Raspberry PiのようにBIOSやReal Time Clockが搭載されてないシングルボードとは違い、一般的なサーバボードと同じでBIOSやBMCが搭載されており、そして様々なハードウェアとの組合せがテストできそうです。
とりあえず Ubuntu 22.04 ARM64 は普通に動きました。
面白いです。

さて これからどうしてやるかな、、、

つづく

iWARP動作検証

iWARP (Internet Wide-Area RDMA Protocol) は、TCP/IPネットワーク経由でRDMAを実装するネットワークプロトコルです。

従来よりHPC分野では、大量のデータを使い演算処理をする大規模計算をサポートするインターコネクトとしてInfinibandが広く採用されてきています。
しかしここ最近では、Infiniband以外にもiWARPやRoCEなども採用される事例が多くなってきています。

そこでiWARPの動作検証をしてみました。
比較方法は、2台の計算機の最大スコアを想定し
1GBps
Infiniband
10Gbps iWARP
のスコアを比較します。

まず以下構成の計算機を2台用意する。

【環境】
●ハードウェア環境
CPU: Intel Xeon Gold 6258R CPU 28Core x1
MEM: 16GB DDR4-2933 x6

●ソフトウェア環境
OS: Ubuntu Server 20.04
MPI: Openmpi 4.1.1
GCC: 9.4.0
Benchmark: cc_himenoBMTxp_mpi(C + MPI, static allocate version)Size=L

【テスト】
●準備計測
まず前提となる最大値を計測する。
計算機1台でのスコアは以下。

・28core without HT N=28
MFLOPS measured : 48898.718831
MFLOPS measured : 48306.170793
MFLOPS measured : 48640.000116
MFLOPS measured : 48399.317924
MFLOPS measured : 48277.031488

平均 48504.2478304 MFLOPS

同構成マシン2台なので最大期待スコアはシンプルに2倍とする。

48504.2478304 MFLOPS x2 = 97008.4956608 MFLOPS
最大期待値   97008.4956608 MFLOPS

●計測
ここからはインターコネクト越しに2台のマシンで計測する。

■ 1Gbps TCP(オンボード Intel 1Gbps NIC)
・56core without HT N=56
MFLOPS measured : 80623.366818
MFLOPS measured : 80866.794020
MFLOPS measured : 81248.198197
MFLOPS measured : 81189.602887
MFLOPS measured : 80827.159099

平均 80951.0242042 MFLOPS

平均 80951.0242042 MFLOPS ÷ 最大期待値   97008.4956608 MFLOPS ≒ 83.4%
※ 計測時のおおよそなシステムプロセス値 10%ほど

■ Infiniband QDR(Mellanox QDR)
・56core without HT N=56
MFLOPS measured : 96102.390695
MFLOPS measured : 96600.515094
MFLOPS measured : 96122.006927
MFLOPS measured : 95872.529788
MFLOPS measured : 96135.243922

平均 96166.5372852 MFLOPS

平均 96166.5372852 MFLOPS ÷ 最大期待値   97008.4956608 MFLOPS ≒ 99.1%
※ 計測時のおおよそなシステムプロセス値 0.1%ほど

■ 10Gbps iWARP(Chelsio 10Gbps NIC)
・56core without HT N=56
MFLOPS measured : 95879.634238
MFLOPS measured : 95465.368767
MFLOPS measured : 94577.077169
MFLOPS measured : 94201.079737
MFLOPS measured : 94704.609024

平均 94965.553787 MFLOPS

平均 94965.553787 MFLOPS ÷ 最大期待値   97008.4956608 MFLOPS ≒ 97.8%
※ 計測時のおおよそなシステムプロセス値 0.1%ほど

【評価】
姫野ベンチマークは、大規模計算までならないとしても軍配はInfinibandでした。さすがです。
ですが10Gbps iWARPも良い結果でした。
最大期待値の97.8%のスコアも良かったですが、計測時のシステムプロセス値 が驚くほど低く0.1%であったことはビックリでした。
計算機環境が小規模であり、コストに見合うのであれば1GbpsよりiWARPを選択するのも悪くなさそうです。

つづく

swSafeのご紹介

当社ではサーバやワークステーションのバックアップとリストアを簡単な操作で行うためのツールswSafeも販売しています。

saSafeイメージ

このツールにはLinuxがインストールされています。サーバやワークステーションのバックアップもしくはリストアを行いたい時に、サーバやワークステーションへこのツールを取り付けて起動するとLinuxが起動します。

Linuxが起動するので、Linuxで行える様々な操作をサーバやワークステーションに対して行うことが出来ますが、

  • 簡単な操作でバックアップやリストアを行う為
  • コマンドによる誤操作を防ぐ為

に、専用インターフェイスを開発しました。その画面をここで確認することが出来ます。このインターフェイスにより、

  • バックアップを行うためのコマンドを覚える必要がなく、
  • キーボードの十字キーやエンターキーくらい

で、操作出来ます。

更に、このツールはLinux上で動いているので、Linuxが認識出来るデバイス、SATAのみでなく、NVMeにインスールされているOSのバックアップやリストアを行うことが出来ます。(ちなみにNVMeって速くて良いですね。ちょっと発熱が大きいのですが、……。)

このツールの想定している状況は、

  • OSをクリーンインストール状態へ戻す
  • 定期的なフルバックアップ

です。

最近ではAnsibleなどの構成管理ツールによりOS構成管理を行いやすくなっていますが、構成管理方法を覚えるのに時間が掛かったり、そもそも構成管理ツールがユーザ様の構成に対応していなかったりする場合あります。その場合には、手作業でサーバやワークステーションの設定を行わなければなりません。設定作業の前に、このツールでバックアップを行っておけば、仮に設定が上手く出来なくなってしまっても、作業前の状態に簡単に戻すことが出来ます。このような状況で、このツールが効果を発揮するかもしれません。

swSafeの紹介でした。

Intel Xeon Platinum 8180 (Skylake-SP) Linpackベンチマーク

CPU: Intel Xeon  Platinum 8180 (28core x2CPU)
MEM: DDR4-2400 192GB (16GB x12 枚 )
OS: CentOS 7

■ソフトウェア環境
Intel Compiler: 2018 update3 Cluster Edition
BLAS: Intel MKL
MPI: Intel MPI

■ベンチマーク
HPL 2.2
# プロセスで使うメモリは、おおよそ 32GB 程度に調整

■スコア
Compiler option: mpiicc -Ofast -xCORE-AVX512
Score: 1628.0GFLOPS

■frequency値
AVX512使用時 (28Core動作)
Base frequency: 1.7GHz
Turbo frequency: 2.3GHz

■結果
最大理論性能を以下に示します。
AVX512使用時Turbo frequency = 2.3GHz x 16 演算 x 28core x 2cpu = 2060.8GFLOPS
スコアは 1628.0GFLOPS ですので、理論性能の 79% となりました。

以上

Intel Xeon Silver 4114 (Skylake-SP) Linpckベンチマーク

Skylake-SPがリリースされて以来、ベンチマーク走らせていなかったのでやってみました。

■ハードウェア構成

CPU: Intel Xeon Silver 4114 (10core x2CPU)
MEM: DDR4-2400 128GB (16GB x8 枚 )
OS: CentOS 7

■ベンチマーク
HPL 2.2
# プロセスで使うメモリは、おおよそ 32GB 程度に調整

・環境1
GCC: 8.2.0
BLAS: Atlas 3.10.3
MPI: OpenMPI 3.1.1

・環境2
Intel Compiler: 2018 update3 Cluster Edition
BLAS: Intel MKL
MPI: Intel MPI

■スコア
・環境1
Compiler option: mpicc -Ofast -march=native
Score: 223.2GFLOPS
Core frequency: 2.2GHz

・環境2
Compiler option: mpiicc -Ofast -xCORE-AVX512
Score: 413.6GFLOPS
Core frequency: 1.4GHz

■補足情報
Intel Skylake-SP は並列計算時に、 AVX未使用時 AVX2使用時 AVX512使用時で各々にBase frequencyが決まっています。
そしてTurbo Boostにて、各々のBase frequencyに対しプロセスを動かすコア数ごとに動作周波数が変動します。

・AVX未使用時 (10Core動作)
Base frequency: 2.2GHz
Turbo frequency: 2.5GHz

・AVX2使用時 (10Core動作)
Base frequency: 1.8GHz
Turbo frequency: 2.2GHz

・AVX512使用時 (10Core動作)
Base frequency: 1.1GHz
Turbo frequency: 1.4GHz

■評価
前提とする最大理論性能を以下に示します。
AVX未使用時Turbo frequency = 2.5GHz x 4 演算 x 10core x 2CPU = 200GFLOPS
AVX2使用時Turbo frequency = 2.2GHz x 8 演算 x 10core x 2CPU = 352GFLOPS
AVX512使用時Turbo frequency = 1.4GHz x 16 演算 x10core x 2CPU = 448GFLOPS

・環境1のスコアについて
「 -march=native 」指定しているので、 AVX512 なコードを出していると期待している。
実際に AVX2 アーキテクチャの CPU で実行するとエラーを吐いて動作しないことから、少なからずAVX512 なコードになっているのではないか?
しかし、 AVX512使用時Turbo frequency 1.4GHz で動作していない。
考えられることとしては、 GCCでは中途半端にAVX512なコードを出しているだけで(ほとんど AVX2 なコードに近いのか?) AVX512 を最大限最適化していないと見えます。そのためにAVX2使用時Turbo frequencyと同じ 2.2GHz で動作していると見える。
仮に AVX2 のコードと仮定して理論性能と比較しても、実際のスコアは 223.2GFLOPS ですので、最大理論性能の 63% となります。
# これはリーズナブルな値と言えるのか。。。

・環境2のスコアについて
スコアは 413.6GFLOPS ですので、理論性能の 92% となります。
もはやSkylake-SPでは、開発環境にIntelコンパイラとIntel MKLを選択しない理由は無いのではないか?と思える結果でした。

以上