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$
になりました。