Giter Club home page Giter Club logo

hpc-arm's Introduction

hpc-arm

Some misc doc for HPC on ARM

hpc-arm's People

Contributors

martin-g avatar yikun avatar happycockroach avatar

Stargazers

 avatar  avatar

Watchers

 avatar James Cloos avatar  avatar  avatar

hpc-arm's Issues

CMAQ: Confusing steps for installing IOAPI

The second and third steps at https://github.com/Yikun/hpc-arm/blob/main/CMAQ.md#compiling-and-installing-cmaq are confusing.
In the first step we download ioapi-3.2-2020111.tar.gz in the current folder (unspecified location). Then we cd to /path/to/CMAQ and try to extract ioapi-3.2-2020111.tar.gz but it is not in the current folder, so we need to use an absolute path instead!

What is even more confusing is that later at step 6 we do export HOME=/path/to/CMAQ, i.e. we override HOME`` for the current user. Why is this needed ? Can't we use CMAQ_HOME` or similar instead ?

CMAQ: Build failure for ioapi

Following the steps at https://github.com/Yikun/hpc-arm/blob/main/CMAQ.md#compiling-and-installing-cmaq lead to this error:

[root@c31236451db8 ioapi-3.2]# make BIN=Linux4_aarch64
Makefile:273: warning: overriding recipe for target `/path/to/CMAQ/Linux4_aarch64'
Makefile:270: warning: ignoring old recipe for target `/path/to/CMAQ/Linux4_aarch64'
(cd /WRF/ioapi-3.2/ioapi   ; make fixed_src)
make[1]: Entering directory `/WRF/ioapi-3.2/ioapi'
make[1]: Nothing to be done for `fixed_src'.
make[1]: Leaving directory `/WRF/ioapi-3.2/ioapi'
(cd /WRF/ioapi-3.2/ioapi   ;  sed -e 's|IOAPI_BASE|/WRF/ioapi-3.2|' -e 's|LIBINSTALL|/path/to/CMAQ/Linux4_aarch64|' -e 's|BININSTALL|/path/to/CMAQ/Linux4_aarch64|' -e 's|IOAPI_DEFS|"-DIOAPI_NCF4"|' -e 's|NCFLIBS|-L/path/to/NETCDF/lib -lnetcdff -lnetcdf -L/path/to/HDF5/lib -lhdf5_hl -lhdf5 -lz|' -e 's|MAKEINCLUDE|include /WRF/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile.nocpl.sed > Makefile )
(cd /WRF/ioapi-3.2/m3tools ;  sed -e 's|IOAPI_BASE|/WRF/ioapi-3.2|' -e 's|LIBINSTALL|/path/to/CMAQ/Linux4_aarch64|' -e 's|BININSTALL|/path/to/CMAQ/Linux4_aarch64|' -e 's|IOAPI_DEFS|"-DIOAPI_NCF4"|' -e 's|NCFLIBS|-L/path/to/NETCDF/lib -lnetcdff -lnetcdf -L/path/to/HDF5/lib -lhdf5_hl -lhdf5 -lz|' -e 's|MAKEINCLUDE|include /WRF/ioapi-3.2/ioapi/Makeinclude|' -e 's|PVMINCLUDE|include  |' < Makefile.nocpl.sed > Makefile )
(cd /WRF/ioapi-3.2/ioapi   ; make BIN=Linux4_aarch64 all)
make[1]: Entering directory `/WRF/ioapi-3.2/ioapi'
cd /WRF/ioapi-3.2/Linux4_aarch64; mpifort -c -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1  -O3 -ffast-math -funroll-loops   -fopenmp -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1 -I/WRF/ioapi-3.2/ioapi /WRF/ioapi-3.2/ioapi/modwrfio.f90
cd /WRF/ioapi-3.2/Linux4_aarch64; mpifort -c -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1  -O3 -ffast-math -funroll-loops   -fopenmp -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1 -I/WRF/ioapi-3.2/ioapi /WRF/ioapi-3.2/ioapi/modmpasfio.f90
cd /WRF/ioapi-3.2/Linux4_aarch64; mpifort -c -DF90=1 -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1  -O3 -ffast-math -funroll-loops   -fopenmp -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1 -I/WRF/ioapi-3.2/ioapi /WRF/ioapi-3.2/ioapi/modpdata.F90
cd /WRF/ioapi-3.2/Linux4_aarch64; mpifort -c -DF90=1 -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1  -O3 -ffast-math -funroll-loops   -fopenmp -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1 -I/WRF/ioapi-3.2/ioapi /WRF/ioapi-3.2/ioapi/modatts3.F90
cd /WRF/ioapi-3.2/Linux4_aarch64; mpifort -c -DF90=1 -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1  -O3 -ffast-math -funroll-loops   -fopenmp -DAUTO_ARRAYS=1 -DF90=1 -DFLDMN=1 -DFSTR_L=int -DIOAPI_NO_STDOUT=1 -DNEED_ARGS=1 -I/WRF/ioapi-3.2/ioapi /WRF/ioapi-3.2/ioapi/modncfio.F90
/WRF/ioapi-3.2/ioapi/modncfio.F90:16601:60:

16601 |         ISTAT   = NF_PUT_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            1
......
19612 |         ISTAT   = NF_PUT_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:16493:58:

16493 |         ISTAT   = NF_PUT_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
19436 |         ISTAT   = NF_PUT_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:16385:58:

16385 |         ISTAT   = NF_PUT_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
19260 |         ISTAT   = NF_PUT_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:16277:57:

16277 |         ISTAT   = NF_PUT_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         1
......
19084 |         ISTAT   = NF_PUT_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:16169:58:

16169 |         ISTAT   = NF_PUT_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
18908 |         ISTAT   = NF_PUT_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:11321:60:

11321 |         ISTAT   = NF_PUT_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            1
......
19612 |         ISTAT   = NF_PUT_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:11229:58:

11229 |         ISTAT   = NF_PUT_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
19436 |         ISTAT   = NF_PUT_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:11137:58:

11137 |         ISTAT   = NF_PUT_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
19260 |         ISTAT   = NF_PUT_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:11045:57:

11045 |         ISTAT   = NF_PUT_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         1
......
19084 |         ISTAT   = NF_PUT_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:10953:58:

10953 |         ISTAT   = NF_PUT_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
18908 |         ISTAT   = NF_PUT_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:7850:60:

 7850 |         ISTAT   = NF_GET_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            1
......
10861 |         ISTAT   = NF_GET_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:7742:58:

 7742 |         ISTAT   = NF_GET_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
10685 |         ISTAT   = NF_GET_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:7634:58:

 7634 |         ISTAT   = NF_GET_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
10509 |         ISTAT   = NF_GET_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:7526:57:

 7526 |         ISTAT   = NF_GET_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         1
......
10333 |         ISTAT   = NF_GET_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:7418:58:

 7418 |         ISTAT   = NF_GET_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
10157 |         ISTAT   = NF_GET_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:2570:60:

 2570 |         ISTAT   = NF_GET_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            1
......
10861 |         ISTAT   = NF_GET_VARA_DOUBLE( FID, VID, DIMS, DELS, GRID )
      |                                                            2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:2478:58:

 2478 |         ISTAT   = NF_GET_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
10685 |         ISTAT   = NF_GET_VARA_INT1( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:2386:58:

 2386 |         ISTAT   = NF_GET_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
10509 |         ISTAT   = NF_GET_VARA_INT2( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:2294:57:

 2294 |         ISTAT   = NF_GET_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         1
......
10333 |         ISTAT   = NF_GET_VARA_INT( FID, VID, DIMS, DELS, GRID )
      |                                                         2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
/WRF/ioapi-3.2/ioapi/modncfio.F90:2202:58:

 2202 |         ISTAT   = NF_GET_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          1
......
10157 |         ISTAT   = NF_GET_VARA_REAL( FID, VID, DIMS, DELS, GRID )
      |                                                          2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
make[1]: *** [modncfio.o] Error 1
make[1]: Leaving directory `/WRF/ioapi-3.2/ioapi'
make: *** [all] Error 2
[root@c31236451db8 ioapi-3.2]# 

WRF: Build failure

Following the steps at https://github.com/Yikun/hpc-arm/blob/main/WRF.md#compiling-and-installing-wrf the compile (step 7) fails with:

time mpif90  -o real_em.o -c -O3 -ftree-vectorize -funroll-loops -march=armv8.2-a -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4  -fopenmp -I../dyn_em -I../dyn_nmm  -I/WRF/WRF-4.2/external/esmf_time_f90  -I/WRF/WRF-4.2/main -I/WRF/WRF-4.2/external/io_netcdf -I/WRF/WRF-4.2/external/io_int -I/WRF/WRF-4.2/frame -I/WRF/WRF-4.2/share -I/WRF/WRF-4.2/phys -I/WRF/WRF-4.2/wrftladj -I/WRF/WRF-4.2/chem -I/WRF/WRF-4.2/inc -I/path/to/NETCDF/include    real_em.f90
f951: error: unknown value 'armv8.2-a' for -march
0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 6824maxresident)k
0inputs+0outputs (0major+742minor)pagefaults 0swaps
make[1]: [real_em.o] Error 1 (ignored)
ranlib  libwrflib.a
ranlib: 'libwrflib.a': No such file

I have tried with -march=native but again it fails the same way.

$ gcc -march=native -Q --help=target prints -march= armv8.2-a+crypto+dotprod+fp16fml but once again it fails the same way.

Finally I've removed -march=... altogether from CFLAGS_LOCAL and FCOPTIM and this helped a bit but the build failed later. See the attachment for the full log.
wrf-compile.log.zip

FVCOM: The download link gives 404

http://fvcom.smast.umassd.edu/releases/fvcom-4.3.tar.gz returns error 404.

It might be because I am not logged in.
I've created an account with them but in the confirmation email it says:

Attention please: Our staff will check and verify your account. It will take about 7 business days. Your account will not be valid until that.
 Thank you for registering with FVCOM @ MEDML! 

So, I won't be able to test FVCOM for now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.