diff --git a/platform/build/make.inc.PIXI b/platform/build/make.inc.PIXI_MPICH similarity index 86% rename from platform/build/make.inc.PIXI rename to platform/build/make.inc.PIXI_MPICH index 188bbb352..e16106e2c 100644 --- a/platform/build/make.inc.PIXI +++ b/platform/build/make.inc.PIXI_MPICH @@ -26,7 +26,7 @@ # 5. Enter and configure Pixi environment (must be repeated every entry) # pixi shell # export GACODE_ROOT=${PIXI_PROJECT_ROOT}/gacode -# export GACODE_PLATFORM=PIXI +# export GACODE_PLATFORM=PIXI_MPICH # source ${GACODE_ROOT}/shared/bin/gacode_setup # # 6. Build GACODE @@ -42,10 +42,10 @@ # #--------------------------------------------------- -MAKE = make -PREFIX = ${CONDA_PREFIX} -NETCDF_PATH=${PREFIX} -MF90 = mpif90 +MAKE = make +PREFIX = ${CONDA_PREFIX} +NETCDF_PATH = ${PREFIX} +MF90 = mpif90 # Compilers and flags @@ -62,8 +62,10 @@ FOMP = -fopenmp LMATH = -L${PREFIX}/lib -lfftw3 -llapack -lblas -NETCDF = -L${PREFIX}/lib -lnetcdff -lnetcdf -NETCDF_INC =${PREFIX}/include +# Optional netCDF libraries + +NETCDF = -L${PREFIX}/lib -lnetcdff -lnetcdf +NETCDF_INC = ${PREFIX}/include # Archive diff --git a/platform/build/make.inc.PIXI_OPENMP b/platform/build/make.inc.PIXI_OPENMP new file mode 100644 index 000000000..093574949 --- /dev/null +++ b/platform/build/make.inc.PIXI_OPENMP @@ -0,0 +1,73 @@ +#--------------------------------------------------- +# OSX, Linux mpich using pixi +# +# 1. Install Pixi +# curl -fsSL https://pixi.sh/install.sh | bash +# +# 2. Restart shell / terminal / console for Pixi to be recognized +# +# 3. Create Pixi environment +# pixi init +# +# 4. Setup Pixi environment +# cd +# git clone git@github.com:gafusion/gacode.git +# pixi add "python~=3.12,<3.13" +# pixi add git +# pixi add openmpi-mpifort +# pixi add gfortran +# pixi add openblas +# pixi add "libopenblas=*=*openmp*" +# pixi add liblapack +# pixi add fftw +# pixi add hdf5 +# pixi add netcdf-fortran +# +# 5. Enter and configure Pixi environment (must be repeated every entry) +# pixi shell +# export GACODE_ROOT=${PIXI_PROJECT_ROOT}/gacode +# export GACODE_PLATFORM=PIXI_OPENMPI +# source ${GACODE_ROOT}/shared/bin/gacode_setup +# +# 6. Build GACODE +# cd gacode +# make +# cd .. +# +# 7. Run regression tests +# neo -r +# tglf -r +# cgyro -r -n 4 -nomp 2 +# tgyro -r -n 4 +# +#--------------------------------------------------- + +MAKE = make +PREFIX = ${CONDA_PREFIX} +NETCDF_PATH = ${PREFIX} +MF90 = mpif90 + +# Compilers and flags + +FC = ${MF90} -std=f2008 -fall-intrinsics -I$(GACODE_ROOT)/modules -J$(GACODE_ROOT)/modules -g -I${PREFIX}/include +F77 = ${MF90} -g + +FMATH = -fdefault-real-8 -fdefault-double-8 +FOPT = -O3 -m64 -fallow-argument-mismatch +FDEBUG = -Wall -fcheck=all -fbacktrace -fbounds-check -O0 -Wextra -finit-real=nan -Wunderflow -ffpe-trap=invalid,zero,overflow +FBOUND = -Wall -fbounds-check +FOMP = -fopenmp + +# System math libraries + +LMATH = -L${PREFIX}/lib -lfftw3 -llapack -lblas + +# Optional netCDF libraries + +NETCDF = -L${PREFIX}/lib -lnetcdff -lnetcdf +NETCDF_INC = ${PREFIX}/include + +# Archive + +ARCH = ar cr + diff --git a/platform/env/env.PIXI b/platform/env/env.PIXI_MPICH similarity index 100% rename from platform/env/env.PIXI rename to platform/env/env.PIXI_MPICH diff --git a/platform/env/env.PIXI_OPENMP b/platform/env/env.PIXI_OPENMP new file mode 100644 index 000000000..a424ba80b --- /dev/null +++ b/platform/env/env.PIXI_OPENMP @@ -0,0 +1,2 @@ +# The PIXI platform assumes that you have installed pixi and run the +# appropriate commands to have the virtual environment set up well. diff --git a/platform/exec/exec.PIXI b/platform/exec/exec.PIXI_MPICH similarity index 100% rename from platform/exec/exec.PIXI rename to platform/exec/exec.PIXI_MPICH diff --git a/platform/exec/exec.PIXI_OPENMP b/platform/exec/exec.PIXI_OPENMP new file mode 100755 index 000000000..ce2550ed3 --- /dev/null +++ b/platform/exec/exec.PIXI_OPENMP @@ -0,0 +1,19 @@ +#!/bin/sh +# GACODE Parallel execution script (PIXI) +# +# NOTES: +# Used mpich2-1.0.1, so use mpirun rather than mpiexec + +simdir=${1} +nmpi=${2} +exec=${3} +nomp=${4} +numa=${5} +mpinuma=${6} + +echo $simdir + +cd $simdir + +mpirun -x OMP_NUM_THREADS=$nomp -np $nmpi $exec +