9. Migration from other systems

9.1. Overview

Here indicates about main compile option which is incompatible when migrating the program from other Fujitsu system (PC cluster and Supercomputer K) to Supercomputer Fugaku and other company’s compiler (Intel compiler and gcc).

9.2. Migration from K

Here indicates main difference between Supercomputer Fugaku and Supercomputer K.

Item

K

Fugaku

Note

Executable file

SPARC VIIIfx format

Armv8.2-A format

Incompatible. Re-compile is required.

Staging

Yes

No

Recommended number of process in node

1

4

Due to having 4 CMG (Core Memory Group, NUMA node) in 1 node

Maximum number of thread in node

8

48

12 thread/process when 4 process/node

Large page

4MiB/32MiB/256MiB

4MiB

Endian

Big endian

Little Endian

Incompatible on binary data

Language environment setting direction

Uses Env_base file

Uses Environment Modules

Default environment is loaded when logging in and job execution

Please refer to “14. Migration from K” of “Supercomputer Fugaku Users Guide -Language and development environment- “ about main incompatible of language environment.

Based on the difference in above, we indicate the change example of job script in below.

[Supercomputer K job script example]

#!/bin/sh -x
#PJM --rsc-list  "node=8"                   # Number of assign node 8  (1 dementional format)
#PJM --rsc-list  "elapse=01:00:00"          # Running time limit 1 hour
#PJM --stg-transfiles all
#PJM --mpi "use-rankdir"                    # Rank number directory use declaration
#PJM --stgin "rank=* ./a.out %r:./"         # Stage in ./a.out to each rank
#PJM -s                                     # Output statistic information
#
. /work/system/Env_base                     # Set environment variables
#
export OMP_NUM_THREADS=8
mpiexec -n 8 ./a.out    # Execute a.out

Change job script as following.

  • Delete the definition about staging (–stg-transfiles, use-rankdir, –stgin, –stgout etc). If definition is still existing, nothing works.

  • Since 1node 4 process, it is using max-proc-per-node=4 here.

  • To make number of process to 8, change number of node to 2. If number of node is 8, it executes with 32 process.

  • Since default language environment is set when job execution, delete environment variables setting.

[Supercomputer Fugaku job script example]

#!/bin/sh -x
#PJM --rsc-list  "node=2"                   # Number of assign node 2 (1 dementional format)
#PJM --rsc-list  "elapse=01:00:00"          # Running time limit 1 hour
#PJM --mpi max-proc-per-node=4              # Upper limit of number of MPI process that created at 1 node
#PJM -g groupname                         # group name
#PJM -x PJM_LLIO_GFSCACHE=/vol000N          # volume names that job uses
#PJM -s                                     # Output statistic information
#

export OMP_NUM_THREADS=12
mpiexec -n 8 ./a.out    # Execute a.out

When executing a job, the directory where pjsub is executed operates as the current directory of the job. When executing multiple jobs at the same time, make sure that input / output data does not conflict between jobs.

9.3. Migration from other Fujitsu systems

This indicates about the migration from other Fujitsu systems, compile option and the difference of optimization directive.

9.3.1. Option difference

Here indicates representative option because of migration from other systems.

PC cluster

“K”

FX100

Fugaku

Changed point

-Kfast

-Kfast

-Kfast

-Kfast

-Kparallel

-Kparallel

-Kparallel

-Kparallel

-Kopenmp

-Kopenmp

-Kopenmp

-Kopenmp

None

-KXFILL

-KXFILL

-Kzfill

Changed option name at “Fugaku”

None

-Kuxsimd

-Kuxsimd

None

Abolished option at “Fugaku”

-Kopenmp_tls

-Kopenmp_tls

-Kopenmp_tls

None

Abolished option at “Fugaku”

9.3.2. Optimization indicator (OCL) difference

Here indicates added to changed representative OCL.

PC cluster

“K”

FX100

Fugaku

Changed point

None

XFILL

XFILL

ZFILL

Name changed at “Fugaku”

None

UXSIMD

UXSIMD

None

Abolished at “Fugaku”

9.4. Migration from other systems

Here indicates main option difference about Intel compiler and GNU.

Item

Induces optimisation option for speeding up

Automatic parallel

OpenMP

Change local variables to automatic variables

Supercomputer Fugaku

-Kfast

-Kparallel

-Kopenmp

-Kauto

Intel compiler

-O3 -xHost

-parallel

-openmp

-auto

GNU

-O3

-

-fopenmp

-

See also

  1. If change to fccpx from GCC (gcc)
    In addition to fccpx, C11 specification understand based on GNU C extentional specification.
  2. If change to fccpx from Intel compiler (ifort)
    Display option to extend Fortran fixed specification.
    Supercomputer Fugaku:-Fwide(Up to 255 letters)
    Intel compiler :-132

9.5. Endian

Here explains about Endian and about comparing with Supercomputer K and target compilers.

9.5.1. Overview

At Supercomputer K, Big Endian is used. On the other hands, Supercomputer Fugaku and around devices uses Little Endian.

Indicates Endian used on each node.

Endian on each node

Node type

K

Fugaku

Computing node

Big Endian

Little Endian

Login node

Little Endian

Little Endian

It is required to change Endian to use the binary data that is created with Supercomputer K. Indicates the policy of change at Data migration (change) policy .

Data migration (change) policy

Language

Change direction

Fortran (Input and output without style)

Uses language software change function

Fortran(Other)

Change by the user

C

Change by the user

C++

Change by the user

MPI-IO

Change by the user

9.5.2. Target compiler

The target compiler in this section is as following. On these compilers, Some Endian conversion functions are provided for Fortran binary data.

9.5.2.1. Fujitsu compiler

At Fujitsu compiler, execution option and change command are offered.

Function

Explanation

Execution option

By putting -Wl,-T to the execution option of Fortran program, Endian change is exeuted when Fortran input/output.

Change command

Offeres fcvendianpx command. Use as fcvendianpx inputfilename outputfilename typetype specifies data type to change (one of these values: 2, 4, 8, 16).

9.5.2.2. Intel compiler

At Intel compiler, compile option and environment variables when execution are offered.

Function

Explanation

Compile option

By compiling with putting -convert big_endian , -convert little_endian, it is possible to make numeric data format without style to Big Endian or Little Endian.

Environment variables when execution

Specify environment variables F_UFMTENDIAN = MODE (MODE = big | little).

9.5.2.3. GNU compiler(GCC)

At gfortran, convert specifier by extending the OPEN statement and execution option are offered.

Function

Explanation

OPEN statement’s extention

Specify CONVERT='BIG_ENDIAN' and CONVERT='LITTLE_ENDIAN' to OPEN statement. Specify such as open(file='big.dat',form='unformatted', convert='big_endian').

Execution option

Specify -fconvert=big-endian and -fconvert=little-endian.