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$ 

になりました。

 目次に戻る