UK-MAC / TeaLeaf

A mini-app to solve the heat conduction equation
http://uk-mac.github.io/TeaLeaf/
GNU Lesser General Public License v3.0
14 stars 3 forks source link

Trying to compile TeaLeaf_ref on ARM system #2

Closed Matsika closed 2 weeks ago

Matsika commented 3 weeks ago

Hi,

Following the instructions in the README.md I have been trying to compile TeaLeaf_ref on ARM system, but I keep getting the following error:

make COMPILER=ARM MPI_COMPILER=mpifort C_MPI_COMPILER=mpicc OPTIONS="-march=armv8-a" C_OPTIONS="-march=armv8-a"

mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/pack_kernel.f90 -o pack_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/initialise_chunk_kernel.f90 -o initialise_chunk_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/update_internal_halo_kernel.f90 -o update_internal_halo_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/update_halo_kernel.f90 -o update_halo_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/generate_chunk_kernel.f90 -o generate_chunk_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/field_summary_kernel.f90 -o field_summary_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/set_field_kernel.f90 -o set_field_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/tea_leaf_common_kernel.f90 -o tea_leaf_common_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c kernels/tea_leaf_cheby_kernel.f90 -o tea_leaf_cheby_kernel.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c data.f90 -o data.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c definitions.f90 -o definitions.o mpifort -cpp -O3 -ffp-contract=fast -march=native -mcpu=native -fopenmp -march=armv8-a -c global_mpi.f90 -o global_mpi.o global_mpi.f90:108:21:

108 | CALL MPI_ALLREDUCE(value,maximum,1,MPI_DOUBLE_PRECISION,MPI_MAX,mpi_cart_comm,err) | 1 ...... 142 | CALL MPI_ALLREDUCE(error,maximum,1,MPI_INTEGER,MPI_MAX,mpi_cart_comm,err) | 2 Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)). global_mpi.f90:90:21:

90 | CALL MPI_ALLREDUCE(value,minimum,1,MPI_DOUBLE_PRECISION,MPI_MIN,mpi_cart_comm,err) | 1 ...... 142 | CALL MPI_ALLREDUCE(error,maximum,1,MPI_INTEGER,MPI_MAX,mpi_cart_comm,err) | 2 Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)). global_mpi.f90:71:21:

71 | CALL MPI_ALLREDUCE(values,totals,2,MPI_DOUBLE_PRECISION,MPI_SUM,mpi_cart_comm,err) | 1 ...... 142 | CALL MPI_ALLREDUCE(error,maximum,1,MPI_INTEGER,MPI_MAX,mpi_cart_comm,err) | 2 Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)). global_mpi.f90:47:21:

47 | CALL MPI_ALLREDUCE(value,total,1,MPI_DOUBLE_PRECISION,MPI_SUM,mpi_cart_comm,err) | 1 ...... 142 | CALL MPI_ALLREDUCE(error,maximum,1,MPI_INTEGER,MPI_MAX,mpi_cart_comm,err) | 2 Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/INTEGER(4)). make: *** [Makefile:203: global_mpi.o] Error 1

I have gcc version 11.4.1 and gfortran version 11.4.1 as well.

I am hoping to get some assistance with this issue. Thanks so much for your time.

d-harris commented 3 weeks ago

Hi, this is a "feature" of the Gnu compilers from 10.0 onwards. Try adding the flag: -fallow-argument-mismatch

That should turn those errors back into warnings.

Matsika commented 3 weeks ago

Thank you so much! That fixed my problem, TeaLeaf is running now!