Genoa2ノードInfinibandクラスター

AMDの最新CPU、Genoaを搭載する2台のサーバーに200GbpsのInfinibandカードを搭載し、Infinibandクラスターを構築した。Infiniband Driverをインストールし、Subnet...

Share
Genoa2ノードInfinibandクラスター

AMDの最新CPU、Genoaを搭載する2台のサーバーに200GbpsのInfinibandカードを搭載し、Infinibandクラスターを構築した。Infiniband Driverをインストールし、Subnet Managerを立ち上げ、最新のOpenMPIのソースコードをダウンロードしてbuild後、osu-micro-benchmarksで速度を計測してみた。ついでに、姫野ベンチで192コアでのベンチマークを撮ってみた。

サーバーは

hostname: hpc01

CPU: 2 * AMD EPYC Genoa 9554 DP/UP 64C/128T 3.1G 256M 360W

Memory: 24 * DDR5-4800 16GB ECC Registered DIMM

SSD: 1 * SamsungPM9A3 1.92TB NVMePCIeGen4 V6 M.2 

HDD: 2 * 8TB SATA

Network: 2 * 10GBaseT Ethernet

hostname: hpc02

CPU: 1 * AMD EPYC Genoa 9554 DP/UP 64C/128T 3.1G 256M 360W

Memory: 12 * DDR5-4800 16GB ECC Registered DIMM

SSD: 1 * SamsungPM9A3 1.92TB NVMePCIeGen4 V6 M.2 

Network: 2 * 10GBaseT Ethernet

になります。それぞれに

を搭載し、専用ケーブルで直結してあります。クラスターとして動作させるために、こちらと同様に設定済みでジョブスケジューラも動作しています。

ここでは、

を行います。

 

1. MLNX_OFEDのインストール

ここをクリックして

Downloadをクリックし、

最新バージョンの使用しているOS、バージョン、アーキテクチャに合わせたISOファイルをダウンロードします。ここでは、 MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64.isoをダウンロードします。

hpc01でダウンロードしたisoファイルをrootになって/mntにmountします。

cd Downloads

sudo su

mount -o ro,loop MLNX_OFED_LINUX-23.04-1.1.3.0-ubuntu20.04-x86_64.iso /mnt

/mntに移動し、インストールスクリプトを起動します。

cd /mnt

./mlnxofedinstall

メッセージが下記のように続いてしばらくするとインストールが終わります。

root@hpc01:/mnt# ./mlnxofedinstall
Logs dir: /tmp/MLNX_OFED_LINUX.1366769.logs
General log file: /tmp/MLNX_OFED_LINUX.1366769.logs/general.log

Below is the list of MLNX_OFED_LINUX packages that you have chosen
(some may have been added by the installer due to package dependencies):

ofed-scripts
mlnx-tools
mlnx-ofed-kernel-utils
mlnx-ofed-kernel-dkms
iser-dkms
isert-dkms
srp-dkms
rdma-core
libibverbs1
ibverbs-utils
ibverbs-providers
libibverbs-dev
libibverbs1-dbg
libibumad3
libibumad-dev
ibacm
librdmacm1
rdmacm-utils
librdmacm-dev
mstflint
ibdump
libibmad5
libibmad-dev
libopensm
opensm
opensm-doc
libopensm-devel
libibnetdisc5
infiniband-diags
mft
kernel-mft-dkms
perftest
ibutils2
ibsim
ibsim-doc
ucx
sharp
hcoll
knem-dkms
knem
openmpi
mpitests
dpcp
srptools
mlnx-ethtool
mlnx-iproute2
rshim
ibarr

This program will install the MLNX_OFED_LINUX package on your machine.
Note that all other Mellanox, OEM, OFED, RDMA or Distribution IB packages will be removed.
Those packages are removed due to conflicts with MLNX_OFED_LINUX, do not reinstall them.

Do you want to continue?[y/N]:y

Checking SW Requirements...
Removing old packages...
Uninstalling the previous version of MLNX_OFED_LINUX
Installing new packages
Installing ofed-scripts-23.04...
Installing mlnx-tools-23.04...
Installing mlnx-ofed-kernel-utils-23.04...
Installing mlnx-ofed-kernel-dkms-23.04...
Installing iser-dkms-23.04...
Installing isert-dkms-23.04...
Installing srp-dkms-23.04...
Installing rdma-core-2304mlnx44...
Installing libibverbs1-2304mlnx44...
Installing ibverbs-utils-2304mlnx44...
Installing ibverbs-providers-2304mlnx44...
Installing libibverbs-dev-2304mlnx44...
Installing libibverbs1-dbg-2304mlnx44...
Installing libibumad3-2304mlnx44...
Installing libibumad-dev-2304mlnx44...
Installing ibacm-2304mlnx44...
Installing librdmacm1-2304mlnx44...
Installing rdmacm-utils-2304mlnx44...
Installing librdmacm-dev-2304mlnx44...
Installing mstflint-4.16.1...
Installing ibdump-6.0.0...
Installing libibmad5-2304mlnx44...
Installing libibmad-dev-2304mlnx44...
Installing libopensm-5.15.0.MLNX20230417.d84ecf64...
Installing opensm-5.15.0.MLNX20230417.d84ecf64...
Installing opensm-doc-5.15.0.MLNX20230417.d84ecf64...
Installing libopensm-devel-5.15.0.MLNX20230417.d84ecf64...
Installing libibnetdisc5-2304mlnx44...
Installing infiniband-diags-2304mlnx44...
Installing mft-4.24.0...
Installing kernel-mft-dkms-4.24.0...
Installing perftest-23.04.0...
Installing ibutils2-2.1.1...
Installing ibsim-0.12...
Installing ibsim-doc-0.12...
Installing ucx-1.15.0...
Installing sharp-3.3.0.MLNX20230417.ec919ce9...
Installing hcoll-4.8.3221...
Installing knem-dkms-1.1.4.90mlnx2...
Installing knem-1.1.4.90mlnx2...
Installing openmpi-4.1.5rc2...
Installing mpitests-3.2.20...
Installing dpcp-1.1.39...
Installing srptools-2304mlnx44...
Installing mlnx-ethtool-6.0...
Installing mlnx-iproute2-6.2.0...
Installing rshim-2.0.6...
Installing ibarr-0.1.3...
Selecting previously unselected package mlnx-fw-updater.
(Reading database ... 185536 files and directories currently installed.)
Preparing to unpack .../mlnx-fw-updater_23.04-1.1.3.0_amd64.deb ...
Unpacking mlnx-fw-updater (23.04-1.1.3.0) ...
Setting up mlnx-fw-updater (23.04-1.1.3.0) ...

Added 'RUN_FW_UPDATER_ONBOOT=no to /etc/infiniband/openib.conf

Initializing...
Attempting to perform Firmware update...
Querying Mellanox devices firmware ...

Device #1:
----------

Device Type: ConnectX6
Part Number: MCX653105A-HDA_Ax
Description: ConnectX-6 VPI adapter card; HDR IB (200Gb/s) and 200GbE; single-port QSFP56; PCIe4.0 x16; tall bracket; ROHS R6
PSID: MT_0000000223
PCI Device Name: c1:00.0
Base GUID: 946dae0300b010f4
Versions: Current Available
FW 20.37.1014 20.37.1014
PXE 3.7.0102 3.7.0102
UEFI 14.30.0013 14.30.0013

Status: Up to date

Log File: /tmp/baiaOVYgGd
Real log file: /tmp/MLNX_OFED_LINUX.1366769.logs/fw_update.log
Device (c1:00.0):
c1:00.0 Infiniband controller: Mellanox Technologies MT28908 Family [ConnectX-6]
Link Width: x16
PCI Link Speed: 16GT/s

Installation passed successfully
To load the new driver, run:
/etc/init.d/openibd restart
root@hpc01:/mnt#

リブートした時opensmdが立ち上がるよう、

systemctl enable opensmd

を実行します。

インストールが成功しているかテストします。

root@hpc01:/mnt# /usr/bin/hca_self_test.ofed

---- Performing Adapter Device Self Test ----
Number of CAs Detected ................. 1
PCI Device Check ....................... PASS
Kernel Arch ............................ x86_64
Host Driver Version .................... MLNX_OFED_LINUX-23.04-1.1.3.0 (OFED-23.04-1.1.3): 5.15.0-73-generic
Host Driver RPM Check .................. PASS
Firmware on CA #0 HCA .................. v20.37.1014
Host Driver Initialization ............. PASS
Number of CA Ports Active .............. 1
Port State of Port #1 on CA #0 (HCA)..... UP 4X HDR (InfiniBand)
Error Counter Check on CA #0 (HCA)...... PASS
Kernel Syslog Check .................... PASS
Node GUID on CA #0 (HCA) ............... 94:6d:ae:03:00:b0:10:f4
------------------ DONE ---------------------

root@hpc01:/mnt#

Infinibandの状態の確認は、

root@hpc01:/mnt# ibstat
CA 'mlx5_0'
CA type: MT4123
Number of ports: 1
Firmware version: 20.37.1014
Hardware version: 0
Node GUID: 0x946dae0300b010f4
System image GUID: 0x946dae0300b010f4
Port 1:
State: Active
Physical state: LinkUp
Rate: 200
Base lid: 1
LMC: 0
SM lid: 1
Capability mask: 0xa651e84a
Port GUID: 0x946dae0300b010f4
Link layer: InfiniBand
root@hpc01:/mnt#

でできます。<

同様の手順を、hpc02でも行います。

目次に戻る 

2. OpenMPIのインストール

ここからCurrent stable release、ここではopenmpi-4.1.5.tar.gzをダウンロードします。

cd /home/hpc/Downloads

tar xzf openmpi-4.1.5.tar.gz

cd openmpi-4.1.5

デフォルトのコンパイラ用にconfigureします。Infinibandを使うよう--with-verbsを加えます。

./configure --prefix=/opt/openmpi-4.1.5 --with-verbs

メッセージが大量に表示されしばらくすると終わります。

128コアあるので、128並列でmakeします。

make -j128

これも大量にメッセージが表示された後終了します。

sudo make install -j128

でインストールを行います。

これも大量にメッセージが表示された後終了します。

/optの下にopenmpiというシンボリックリンクを作りopenmpi-4.1.5にリンクします。

cd   /opt

ln -s openmpi-4.1.5 openmpi

~/.bashrcの最後に

export PATH=/opt/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH
export MANPATH=/opt/openmpi/share/man:$MANPATH
alias vi=vim

を加え、

. ~/.bashrc

を実行して有効にします。

 目次に戻る 

 

 

3. osu-micro-benchmarksでInfinibandの速度計測

ここからtarballをダウンロードします。

cd /home/hpc/Downloads

tar xzf osu-micro-benchmarks-7.1-1.tar.gz

cd osu-micro-benchmarks-7.1-1

./configure CC=`which mpicc` CXX=`which mpicxx`

それが終了したら、

make -j128

を実行します。その後、

cd c/mpi/pt2pt/standard

でosu_bwがあるディレクトリに移り、転送速度を計測します。

hpc@hpc01:~/Downloads/osu-micro-benchmarks-7.1-1/c/mpi/pt2pt/standard$ mpirun -np 2 -H hpc01,hpc02 ./osu_bw
# OSU MPI Bandwidth Test v7.1
# Size Bandwidth (MB/s)
# Datatype: MPI_CHAR.
1 3.32
2 6.71
4 13.36
8 26.91
16 46.99
32 106.86
64 210.49
128 420.64
256 778.93
512 1543.53
1024 3057.21
2048 5029.44
4096 8079.38
8192 12230.88
16384 14533.63
32768 22649.99
65536 23638.99
131072 24123.22
262144 24430.13
524288 24563.84
1048576 24622.39
2097152 24652.92
4194304 24670.17
hpc@hpc01:~/Downloads/osu-micro-benchmarks-7.1-1/c/mpi/pt2pt/standard$

最大で24670.18MB/s即ち197.361.44Mbit/sとInfiniband HDR規格の200Gbit/sの性能が出ていることがわかりました。ちなみに、HDR Infinibandの代わりに10G Ethernetを使って計測すると

hpc@hpc01:~/Downloads/osu-micro-benchmarks-7.1-1/c/mpi/pt2pt/standard$ mpirun -np 2 --mca pml ob1 --mca btl tcp,self --mca btl_tcp_if_include eth0 -H hpc01,hpc02 ./osu_bw
# OSU MPI Bandwidth Test v7.1
# Size Bandwidth (MB/s)
# Datatype: MPI_CHAR.
1 0.70
2 1.43
4 2.27
8 5.74
16 9.74
32 20.99
64 43.09
128 76.53
256 142.56
512 224.82
1024 331.04
2048 397.06
4096 655.46
8192 825.69
16384 1016.50
32768 1081.60
65536 1091.71
131072 1134.50
262144 1153.92
524288 1165.19
1048576 1170.69
2097152 1173.79
4194304 1175.23
hpc@hpc01:~/Downloads/osu-micro-benchmarks-7.1-1/c/mpi/pt2pt/standard$

しか出ないことがわかります。

 目次に戻る 

4. 姫野ベンチで192コアでの速度計測

ここのFortran90 + MPIバージョンをダウンロードして解凍します。unzipするとf90_xp_mpi.lzhというファイルができますが、それをこちら

の説明にあるlhaというアプリをインストールするとさらに解凍できて、himenoBMTxpr.f90 というファイルができます。それをmkdir /home/hpc/himenoで作ったディレクトリにコピーします。

cd /home/hpc/himeno

コンパイルは

mpif90 -Ofast himenoBMTxpr.f90 -o himeno

で行います。

4コアで実行してみましょう。

mpiプログラムを実行するためのコマンドがmpirunです。

mpirun -np 4 ./himeno

で実行します。-np 4オプションで4コアでの実行を指示します。

姫野ベンチを実行すると最初にグリッドサイズを聞かれますので、最大サイズのxlを入力します。xlは1024x512x512になります。

続いてグリッドを各方向に何分割するかを聞かれます。ここでは1 4 1を入力します。いろいろな分割の可能性がありますが、分割の仕方によって、表示される性能が変化しますので、興味がある方は試してみてください。

入力が終わると3サイクルのリハーサルシミュレーションが行われ、性能が表示されます。この実行時間を元にして、約1分間で実行可能なサイクル数が計算され、そのサイクル数だけ本番のシミュレーションが行われます。したがって、姫野ベンチはコンピュータの性能に関わらず、常に約1分で実行が終わります。

 

このクラスターでは2台合わせると192コアもありますので、グリッドの分割の組み合わせはかなりの数になります。グリッドをどのように分割すると最大の性能が出るのか興味深いので、試してみましょう。

手動では大変なので、ジョブスケジューラにスクリプトでジョブを投入することにします。そのため、姫野ベンチで最初に聞かれるグリッドのサイズ(XL)と分割の3つの数を自動で入力できるようにします。そのためのスクリプトがcomhimenoで

mpirun -np 8 ./comhimeno 2 2 2

のように使います。comhimenoは下記のようなスクリプトです。

hpc@hpc01:~/himeno$ cat comhimeno
#!/bin/bash
./himeno <<.
xl
$1 $2 $3
.

hpc@hpc01:~/himeno$ mpirun -np 8 ./comhimeno 2 2 2
For example:
Grid-size=
XS (64x32x32)
S (128x64x64)
M (256x128x128)
L (512x256x256)
XL (1024x512x512)
Grid-size =

For example:
DDM pattern=
1 1 2
i-direction partitioning : 1
j-direction partitioning : 1
k-direction partitioning : 2
DDM pattern =

Sequential version array size
mimax= 1025 mjmax= 513 mkmax= 513
Parallel version array size
mimax= 514 mjmax= 258 mkmax= 258
imax= 513 jmax= 257 kmax= 257
I-decomp= 2 J-decomp= 2 K-decomp= 2

Start rehearsal measurement process.
Measure the performance in 3 times.
MFLOPS: 45600.122732447409 time(s): 0.59460070700000001 4.38744028E-04
Now, start the actual measurement process.
The loop will be excuted in 302 times.
This will take about one minute.
Wait for a while.
Loop executed for 302 times
Gosa : 3.99317069E-04
MFLOPS: 46679.943755012937 time(s): 58.471844912000002
Score based on Pentium III 600MHz : 563.495239
hpc@hpc01:~/himeno$

bsubでジョブスケジューラにMPIジョブを投入する場合は、mpirunの代わりにopenmpi-mpirunを使います。複数ノードにまたがるMPIジョブの場合、どのノードで何コア実行するのかはジョブスケジューラしかわからないので、それをmachinefileに変換してくれるのが、openmpi-mpirunの役割です。というわけで、bsubで上記のMPIジョブを投入する場合は、

hpc@hpc01:~/himeno$ bsub -n 8 -o logdir openmpi-mpirun ./comhimeno 2 2 2
Job <622> is submitted to default queue .

となり、その結果はlogdirの下にジョブ番号.outというファイルで記録されます。

hpc@hpc01:~/himeno$ cat logdir/622.out
Sender: LSF System <lavaadmin@hpc01>
Subject: Job 622: Done

Job was submitted from host by user .
Job was executed on host(s) <8*hpc01>, in queue , as user .
was used as the home directory.
was used as the working directory.
Started at Sat Jun 10 17:09:21 2023
Results reported at Sat Jun 10 17:10:26 2023

Your job looked like:

------------------------------------------------------------
# LSBATCH: User input
openmpi-mpirun ./comhimeno 2 2 2
------------------------------------------------------------

Successfully completed.

Resource usage summary:

CPU time : 480.51 sec.

The output (if any) follows:

For example:
Grid-size=
XS (64x32x32)
S (128x64x64)
M (256x128x128)
L (512x256x256)
XL (1024x512x512)
Grid-size =

For example:
DDM pattern=
1 1 2
i-direction partitioning : 1
j-direction partitioning : 1
k-direction partitioning : 2
DDM pattern =

Sequential version array size
mimax= 1025 mjmax= 513 mkmax= 513
Parallel version array size
mimax= 514 mjmax= 258 mkmax= 258
imax= 513 jmax= 257 kmax= 257
I-decomp= 2 J-decomp= 2 K-decomp= 2

Start rehearsal measurement process.
Measure the performance in 3 times.
MFLOPS: 45505.488724488925 time(s): 0.59583724900000001 4.38744028E-04
Now, start the actual measurement process.
The loop will be excuted in 302 times.
This will take about one minute.
Wait for a while.
Loop executed for 302 times
Gosa : 3.99317069E-04
MFLOPS: 46457.595267043878 time(s): 58.751694229000002
Score based on Pentium III 600MHz : 560.811157
hpc@hpc01:~/himeno$
</lavaadmin@hpc01>

上記の結果から、最後のMFLOPS値とdecompの行だけを取り出すスクリプトexresを作ります。

hpc@hpc01:~/himeno$ cat exres
#!/bin/bash
tail -n 2 $1|grep MFLOPS|cut -c 13-30|tr '\n' ' '
grep decomp $1
hpc@hpc01:~/himeno$

 これを使うと上記のファイルから、次の結果を取り出すことができます。

hpc@hpc01:~/himeno$ ./exres logdir/622.out
46457.595267043878 I-decomp= 2 J-decomp= 2 K-decomp= 2
hpc@hpc01:~/himeno$

以上をベースにして、hpc01で128プロセスの姫野ベンチのグリッド分割のあらゆる可能性をジョブ投入するスクリプトをbsub_himeno128として作成しました。内容は、

hpc@hpc01:~/himeno$ cat bsub_himeno128
#!/bin/bash
np=128
machine=hpc01
mkdir -p logdir.$np
for i in `seq 1 $np`
do
if [ $(( $np % i )) -eq 0 ]
then
jj=$(( $np / $i ))
for j in `seq 1 $jj`
do
if [ $(( $jj % $j )) -eq 0 ]
then
k=$(( $jj / $j ))
echo $i $j $k
echo bsub -n $np -o logdir openmpi-mpirun ./comhimeno $i $j $k
bsub -m $machine -n $np -o logdir.$np openmpi-mpirun ./comhimeno $i $j $k
fi
done
fi
done
hpc@hpc01:~/himeno$
のようになっています。hpc02で64プロセスの姫野ベンチのグリッド分割のあらゆる可能性をジョブ投入するスクリプトをbsub_himeno64として作成しました。内容は、hpc@hpc01:~/himeno$ cat bsub_himeno64
#!/bin/bash
np=64
machine=hpc02
mkdir -p logdir.$np
for i in `seq 1 $np`
do
if [ $(( $np % i )) -eq 0 ]
then
jj=$(( $np / $i ))
for j in `seq 1 $jj`
do
if [ $(( $jj % $j )) -eq 0 ]
then
k=$(( $jj / $j ))
bsub -m $machine -n $np -o logdir.$np openmpi-mpirun ./comhimeno $i $j $k
fi
done
fi
done
hpc@hpc01:~/himeno$
です。さらに、hpc01とhpc02の両方を使い、192プロセスの姫野ベンチのグリッド分割のあらゆる可能性をジョブ投入するスクリプトをbsub_himeno64として作成しました。内容は、hpc@hpc01:~/himeno$ cat bsub_himeno192
#!/bin/bash
np=192
mkdir -p logdir.$np
for i in `seq 1 $np`
do
if [ $(( $np % i )) -eq 0 ]
then
jj=$(( $np / $i ))
for j in `seq 1 $jj`
do
if [ $(( $jj % $j )) -eq 0 ]
then
k=$(( $jj / $j ))
echo $i $j $k
echo bsub -n $np -o logdir openmpi-mpirun ./comhimeno $i $j $k
bsub -n $np -o logdir.$np openmpi-mpirun ./comhimeno $i $j $k
fi
done
fi
done
hpc@hpc01:~/himeno$
です。 これらをジョブ投入して、実行が終わると結果は、logdir.64、logdir.128、logdir.192の中に残ります。

64プロセスの結果を大きい順にソートして見てみると

hpc@hpc01:~/himeno$ for f in logdir.64/*;do ./exres $f;done|sort -r
147862.70274005053 I-decomp= 4 J-decomp= 4 K-decomp= 4
147109.74553067313 I-decomp= 2 J-decomp= 8 K-decomp= 4
147007.21300703855 I-decomp= 1 J-decomp= 16 K-decomp= 4
146253.29611164352 I-decomp= 8 J-decomp= 2 K-decomp= 4
145725.32431160423 I-decomp= 4 J-decomp= 8 K-decomp= 2
145098.53478984331 I-decomp= 8 J-decomp= 4 K-decomp= 2
145001.25574495207 I-decomp= 2 J-decomp= 4 K-decomp= 8
144851.95469231170 I-decomp= 1 J-decomp= 8 K-decomp= 8
144052.10138265058 I-decomp= 4 J-decomp= 2 K-decomp= 8
144047.87314453037 I-decomp= 2 J-decomp= 16 K-decomp= 2
142098.56509841603 I-decomp= 8 J-decomp= 1 K-decomp= 8
141633.11465862973 I-decomp= 4 J-decomp= 16 K-decomp= 1
141030.18833820752 I-decomp= 8 J-decomp= 8 K-decomp= 1
139869.17487190658 I-decomp= 16 J-decomp= 1 K-decomp= 4
139528.79438340437 I-decomp= 16 J-decomp= 2 K-decomp= 2
138084.22718787583 I-decomp= 1 J-decomp= 4 K-decomp= 16
137647.64607855119 I-decomp= 16 J-decomp= 4 K-decomp= 1
137282.83215357040 I-decomp= 2 J-decomp= 2 K-decomp= 16
136022.07982713968 I-decomp= 4 J-decomp= 1 K-decomp= 16
134552.23202197274 I-decomp= 2 J-decomp= 1 K-decomp= 32
134444.53876558167 I-decomp= 1 J-decomp= 32 K-decomp= 2
133776.34153990817 I-decomp= 1 J-decomp= 2 K-decomp= 32
133372.84198211442 I-decomp= 1 J-decomp= 64 K-decomp= 1
132820.33634438980 I-decomp= 2 J-decomp= 32 K-decomp= 1
126282.47600480703 I-decomp= 1 J-decomp= 1 K-decomp= 64
125652.01179313402 I-decomp= 32 J-decomp= 2 K-decomp= 1
123823.73215352320 I-decomp= 32 J-decomp= 1 K-decomp= 2
102537.57932680349 I-decomp= 64 J-decomp= 1 K-decomp= 1

になりました。同様に128プロセスの結果を大きい順にソートして見てみると

hpc@hpc01:~/himeno$ for f in logdir.128/*;do ./exres $f;done|sort -r
268839.69063551538 I-decomp= 1 J-decomp= 16 K-decomp= 8
267858.56350601662 I-decomp= 2 J-decomp= 8 K-decomp= 8
265489.66037699062 I-decomp= 8 J-decomp= 2 K-decomp= 8
265396.44497175154 I-decomp= 8 J-decomp= 4 K-decomp= 4
265153.94713121362 I-decomp= 4 J-decomp= 4 K-decomp= 8
264874.07367554063 I-decomp= 4 J-decomp= 16 K-decomp= 2
264576.47432556824 I-decomp= 4 J-decomp= 8 K-decomp= 4
264300.19983698981 I-decomp= 1 J-decomp= 8 K-decomp= 16
264028.04253062635 I-decomp= 2 J-decomp= 16 K-decomp= 4
263047.91931976605 I-decomp= 2 J-decomp= 4 K-decomp= 16
260893.29887010076 I-decomp= 16 J-decomp= 2 K-decomp= 4
259795.97009521688 I-decomp= 4 J-decomp= 2 K-decomp= 16
259654.93141946886 I-decomp= 8 J-decomp= 1 K-decomp= 16
258462.37297200246 I-decomp= 8 J-decomp= 8 K-decomp= 2
255175.56950289453 I-decomp= 16 J-decomp= 1 K-decomp= 8
254913.60661433253 I-decomp= 2 J-decomp= 32 K-decomp= 2
253229.83744281909 I-decomp= 16 J-decomp= 4 K-decomp= 2
248687.41082674355 I-decomp= 8 J-decomp= 16 K-decomp= 1
248232.41843025817 I-decomp= 1 J-decomp= 32 K-decomp= 4
245882.20346582014 I-decomp= 16 J-decomp= 8 K-decomp= 1
244943.63082340479 I-decomp= 4 J-decomp= 32 K-decomp= 1
244648.77631382301 I-decomp= 2 J-decomp= 2 K-decomp= 32
243764.85063726400 I-decomp= 1 J-decomp= 4 K-decomp= 32
243712.48894178960 I-decomp= 1 J-decomp= 64 K-decomp= 2
231304.00345365130 I-decomp= 32 J-decomp= 2 K-decomp= 2
230201.73951305955 I-decomp= 4 J-decomp= 1 K-decomp= 32
229048.87061686636 I-decomp= 32 J-decomp= 1 K-decomp= 4
226368.92597251528 I-decomp= 32 J-decomp= 4 K-decomp= 1
226292.23875544898 I-decomp= 2 J-decomp= 1 K-decomp= 64
225580.89264329046 I-decomp= 1 J-decomp= 2 K-decomp= 64
225053.55747073609 I-decomp= 2 J-decomp= 64 K-decomp= 1
200307.43921903940 I-decomp= 1 J-decomp= 1 K-decomp= 128
197753.99208844593 I-decomp= 1 J-decomp= 128 K-decomp= 1
195406.81214633878 I-decomp= 64 J-decomp= 1 K-decomp= 2
194917.27918599980 I-decomp= 64 J-decomp= 2 K-decomp= 1
147984.65025397617 I-decomp= 128 J-decomp= 1 K-decomp= 1
hpc@hpc01:~/himeno$

になりました。同様に192プロセスの結果を大きい順にソートして見てみると

hpc@hpc01:~/himeno$ for f in logdir.192/*;do ./exres $f;done|sort -r
376415.86149300856 I-decomp= 2 J-decomp= 12 K-decomp= 8
376273.17360359285 I-decomp= 1 J-decomp= 16 K-decomp= 12
375734.10743565374 I-decomp= 12 J-decomp= 4 K-decomp= 4
375176.62300876848 I-decomp= 1 J-decomp= 12 K-decomp= 16
373267.71824752912 I-decomp= 6 J-decomp= 4 K-decomp= 8
372571.58283023397 I-decomp= 6 J-decomp= 8 K-decomp= 4
372211.09745262930 I-decomp= 4 J-decomp= 3 K-decomp= 16
369668.23769811931 I-decomp= 1 J-decomp= 24 K-decomp= 8
368820.57791295619 I-decomp= 16 J-decomp= 1 K-decomp= 12
368338.98015557905 I-decomp= 1 J-decomp= 48 K-decomp= 4
367316.70459709404 I-decomp= 8 J-decomp= 2 K-decomp= 12
367156.03258403012 I-decomp= 12 J-decomp= 2 K-decomp= 8
367150.41641426703 I-decomp= 8 J-decomp= 6 K-decomp= 4
367107.85410271963 I-decomp= 3 J-decomp= 4 K-decomp= 16
365811.03983269219 I-decomp= 4 J-decomp= 8 K-decomp= 6
364981.85814307019 I-decomp= 16 J-decomp= 2 K-decomp= 6
364432.09439934930 I-decomp= 1 J-decomp= 32 K-decomp= 6
364059.73065206839 I-decomp= 8 J-decomp= 8 K-decomp= 3
363773.47575483489 I-decomp= 4 J-decomp= 16 K-decomp= 3
363343.66124935728 I-decomp= 8 J-decomp= 3 K-decomp= 8
363040.31398885150 I-decomp= 12 J-decomp= 1 K-decomp= 16
362700.21777277312 I-decomp= 12 J-decomp= 8 K-decomp= 2
361473.11555538262 I-decomp= 4 J-decomp= 6 K-decomp= 8
360191.58280135476 I-decomp= 6 J-decomp= 2 K-decomp= 16
358940.97005467379 I-decomp= 16 J-decomp= 3 K-decomp= 4
357504.65604044753 I-decomp= 16 J-decomp= 4 K-decomp= 3
356493.94020137761 I-decomp= 4 J-decomp= 12 K-decomp= 4
356102.32290982926 I-decomp= 8 J-decomp= 4 K-decomp= 6
355860.72845519363 I-decomp= 6 J-decomp= 16 K-decomp= 2
353660.29708643019 I-decomp= 8 J-decomp= 12 K-decomp= 2
352752.20224058320 I-decomp= 2 J-decomp= 6 K-decomp= 16
352588.53722173953 I-decomp= 16 J-decomp= 12 K-decomp= 1
351668.82794732723 I-decomp= 16 J-decomp= 6 K-decomp= 2
348574.98906787956 I-decomp= 24 J-decomp= 1 K-decomp= 8
347865.94925258600 I-decomp= 1 J-decomp= 6 K-decomp= 32
347704.30419605260 I-decomp= 24 J-decomp= 2 K-decomp= 4
345604.40351061535 I-decomp= 6 J-decomp= 1 K-decomp= 32
345504.17479093967 I-decomp= 4 J-decomp= 2 K-decomp= 24
345214.13715192635 I-decomp= 1 J-decomp= 8 K-decomp= 24
344093.69842301105 I-decomp= 2 J-decomp= 8 K-decomp= 12
341407.39270712616 I-decomp= 12 J-decomp= 16 K-decomp= 1
339562.52222070552 I-decomp= 24 J-decomp= 4 K-decomp= 2
339416.70798992418 I-decomp= 6 J-decomp= 32 K-decomp= 1
338906.38290222554 I-decomp= 32 J-decomp= 3 K-decomp= 2
338768.69935728575 I-decomp= 32 J-decomp= 1 K-decomp= 6
338010.62698151026 I-decomp= 8 J-decomp= 1 K-decomp= 24
337992.26384233823 I-decomp= 2 J-decomp= 24 K-decomp= 4
337801.00533561851 I-decomp= 24 J-decomp= 8 K-decomp= 1
337670.03039468988 I-decomp= 8 J-decomp= 24 K-decomp= 1
336823.40547445923 I-decomp= 1 J-decomp= 64 K-decomp= 3
336463.71563829179 I-decomp= 2 J-decomp= 32 K-decomp= 3
332774.90901743172 I-decomp= 3 J-decomp= 8 K-decomp= 8
331585.31243284920 I-decomp= 3 J-decomp= 16 K-decomp= 4
331045.41943297168 I-decomp= 4 J-decomp= 24 K-decomp= 2
330988.66322575981 I-decomp= 32 J-decomp= 2 K-decomp= 3
330298.82052998064 I-decomp= 3 J-decomp= 2 K-decomp= 32
329084.93471622589 I-decomp= 1 J-decomp= 4 K-decomp= 48
328578.45326749590 I-decomp= 4 J-decomp= 4 K-decomp= 12
328352.13914201304 I-decomp= 2 J-decomp= 48 K-decomp= 2
327470.14733257267 I-decomp= 32 J-decomp= 6 K-decomp= 1
320569.41119830828 I-decomp= 1 J-decomp= 96 K-decomp= 2
316441.23540618789 I-decomp= 4 J-decomp= 1 K-decomp= 48
316354.71980042022 I-decomp= 2 J-decomp= 16 K-decomp= 6
315578.38399266370 I-decomp= 48 J-decomp= 4 K-decomp= 1
312643.28616411414 I-decomp= 48 J-decomp= 1 K-decomp= 4
312354.61485226679 I-decomp= 3 J-decomp= 32 K-decomp= 2
311476.31926144002 I-decomp= 2 J-decomp= 4 K-decomp= 24
310363.06443459744 I-decomp= 3 J-decomp= 1 K-decomp= 64
309358.28882035468 I-decomp= 48 J-decomp= 2 K-decomp= 2
309296.73411034275 I-decomp= 3 J-decomp= 64 K-decomp= 1
309148.49516192719 I-decomp= 4 J-decomp= 48 K-decomp= 1
300822.09998318378 I-decomp= 1 J-decomp= 3 K-decomp= 64
294604.87077143742 I-decomp= 2 J-decomp= 2 K-decomp= 48
290931.52301026625 I-decomp= 1 J-decomp= 2 K-decomp= 96
285724.37929852383 I-decomp= 64 J-decomp= 1 K-decomp= 3
283159.94433935476 I-decomp= 1 J-decomp= 1 K-decomp= 192
281289.06325043133 I-decomp= 64 J-decomp= 3 K-decomp= 1
280540.23650316661 I-decomp= 2 J-decomp= 1 K-decomp= 96
279521.51168136211 I-decomp= 2 J-decomp= 3 K-decomp= 32
268352.02910539851 I-decomp= 2 J-decomp= 96 K-decomp= 1
257565.62000669708 I-decomp= 96 J-decomp= 1 K-decomp= 2
251959.88261332901 I-decomp= 96 J-decomp= 2 K-decomp= 1
238395.11472383616 I-decomp= 1 J-decomp= 192 K-decomp= 1
179778.63219801741 I-decomp= 192 J-decomp= 1 K-decomp= 1
hpc@hpc01:~/himeno$

になりました。

 目次に戻る 

Read more

ローカルLLMはAllegro/NeQUIPの学習設定YAMLを作れるのか:Nemotronでmetadata-only preflightを検証

ローカルLLMはAllegro/NeQUIPの学習設定YAMLを作れるのか:Nemotronでmetadata-only preflightを検証 これは性能ベンチマークではありません。A100x4上のローカルLLMで、Allegro / NeQUIPの学習設定YAMLをどこまで安全に作り、実行前に確認できるかを調べた機能検証です。 結論から言うと、NemotronはAllegro / NeQUIPのtraining YAML候補を生成できました。既存SIF内で torch / nequip / allegro のimport、A100x4のCUDA可視

By Kenetsu Hanabusa

ローカルLLMはHPC入力ファイルを作り、エラーを直せるのか:NemotronでQuantum ESPRESSOとLAMMPSを検証

ローカルLLMはHPC入力ファイルを作り、エラーを直せるのか:NemotronでQuantum ESPRESSOとLAMMPSを検証 この記事の位置づけ これは性能ベンチマークではなく、 ローカルLLMがHPC入力ファイルの生成、実行ログを使った修正、再実行まで支援できるか を確認した機能検証です。 H200 NVLやRTX PRO 6000 Blackwellへの一般化はせず、次回以降の別フェーズとして扱います。 結論 A100 80GB x4上で NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 をローカル配信し、Quantum

By Kenetsu Hanabusa