Page MenuHomec4science

Makefile
No OneTemporary

File Metadata

Created
Tue, May 20, 18:13

Makefile

#
EXEC=gradz_n2n_fd4_omp_gcc gradz_n2n_fd4_omp_nv gradz_n2n_fd4_off_nv gradz_n2n_fd4_off_gcc gradz_n2n_fd4_acc_nv gradz_n2n_fd4_acc_gcc gradz_n2n_fd4_cuda
# on izar
#FC=gfortran # GNU Fortran compiler
#FCBIN=/scratch/software/spack/opt/spack/linux-rhel7-sandybridge/gcc-4.8.5/gcc-9.3.0-rv7cc5ibshxf6lldza2ym3wtjormh5cl/bin/gfortran
FCBIN=/home/foureste/Projects/gcc-11/build/bin/gfortran
#FCBIN=gfortran
FC=nvfortran # NVHPC Fortran compiler
#
FCFLAGS = -Ofast -march=skylake -mprefer-vector-width=512 -lgfortran -lm
FCFLAGS_OMP= $(FCFLAGS) -fopenmp -foffload=disable
FCFLAGS_OFF= $(FCFLAGS) -D__OMPGPU -fopenmp -foffload="-lm -lgfortran" # options for OpenMP with GNU
FCFLAGS_ACC= $(FCFLAGS) -fopenacc # options for OpenMP with GNU
#FLAGS=-O3 -Xcompiler "-march=skylake -mprefer-vector-width=512"
FLAGS = -fast -tp=skylake -mavx512f #-ccbin=$(CCBIN)
FLAGS += -Minfo=mp
FLAGS_OMP = $(FLAGS) -mp=multicore # options for openMP with NVHPC
FLAGS_OFF = $(FLAGS) -D__OMPGPU -static-nvidia -mp=gpu -gpu=cc70 # options for openMP with NVHPC
FLAGS_ACC = $(FLAGS) -acc -gpu=cc70 # options for openACC with NVHPC
#
FLAGS_CUDA = $(FLAGS) -cuda -gpu=cc70 -g
#
all: $(EXEC)
#
gradz_n2n_fd4_omp_gcc: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FCBIN) $(FCFLAGS_OMP) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
gradz_n2n_fd4_omp_nv: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FC) $(FLAGS_OMP) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
gradz_n2n_fd4_off_gcc: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FCBIN) $(FCFLAGS_OFF) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
gradz_n2n_fd4_off_nv: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FC) $(FLAGS_OFF) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
gradz_n2n_fd4_acc_gcc: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FCBIN) $(FCFLAGS_ACC) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
gradz_n2n_fd4_acc_nv: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FC) $(FLAGS_ACC) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
gradz_n2n_fd4_cuda: gradz_n2n_fd4.F90 gradients_mod.F90 space_grid_mod.F90 prec_const_mod.F90
$(FC) $(FLAGS_CUDA) prec_const_mod.F90 space_grid_mod.F90 gradients_mod.F90 gradz_n2n_fd4.F90 -o $@
#
clean:
rm -f $(EXEC) *.mod *.o *~

Event Timeline