On 14-12-01 01:48 PM, Satish Balay wrote:
On Mon, 1 Dec 2014, Danyang Su wrote:Hi All, I have a PETSc application that need additional compiling flags to build Hybrid MPI-OpenMP parallel application on WestGrid Supercomputer (Canada) system. The code and makefile work fine on my local machine for both Windows and Linux, but when compiled on WestGrid Orcinus System for the OpenMP version and Hybrid version, the OpenMP parallel part does not take effect while only MPI parallel part takes effect. There is no error while compiling the code. I am not sure if there is something wrong with the makefile or something other setting. The compiler flags need to build Hybrid MPI-OpenMP version on WestGrid Orcinus is "-shared-intel -openmp -O2 -xSSSE3 -axSSE4.2,SSE4.1 -ip" . For the sequential version or MPI parallel version, these flags are not needed. Would anybody help to check if the compiler flag (red) in the makefile is correct? Thanks, Danyang The makefile is shown below include ${PETSC_DIR}/conf/variables include ${PETSC_DIR}/conf/rules #FC = ifort SRC =./../ # Additional flags that may be required by the compiler ... # This is required for the OpenMP parallel version and Hybrid MPI-OpenMP parallel version # not necessary for the sequential version and MPI version DFCFLAG = -shared-intel -openmp -O2 -xSSSE3 -axSSE4.2,SSE4.1 -ip #Flag for WestGrid Orcinus System #Load PETSc module before make #module load /global/system/Modules/modulefiles/intel-2011/petsc FPPFLAGS = -DLINUX -DRELEASE -DPETSC -DMPI -DOPENMP SOURCES = $(SRC)gas_advection/relpfsat_g.o\ $(SRC)int_h_ovendry.o\ $(SRC)dhconst.o\ ... min3p: $(SOURCES) chkopts -${FLINKER} $(FPPFLAGS) $(DFCFLAG) -o ex $(SOURCES) ${PETSC_LIB} ${DLIB}You are using DFCFLAG only during link time - and not at compile time. If you need to specify flags for both compile time and linktime - use FFLAGS i.e: FFLAGS = -shared-intel -openmp -O2 -xSSSE3 -axSSE4.2,SSE4.1 -ip [and remove DFCFLAG] Also you should specify FFLAGS,FPPFLAGS before the 'incude' directives in the makefile. Satish
Hi Satish, Thanks very much. It now works. Danyang
