Skip to content

Commit

Permalink
Split PIXI build into mpich and openmpi versions
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronkho committed Nov 15, 2024
1 parent 8d4cc83 commit 94b8ed1
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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

Expand Down
73 changes: 73 additions & 0 deletions platform/build/make.inc.PIXI_OPENMP
Original file line number Diff line number Diff line change
@@ -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 <env_name>
#
# 4. Setup Pixi environment
# cd <env_name>
# git clone [email protected]: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

File renamed without changes.
2 changes: 2 additions & 0 deletions platform/env/env.PIXI_OPENMP
Original file line number Diff line number Diff line change
@@ -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.
File renamed without changes.
19 changes: 19 additions & 0 deletions platform/exec/exec.PIXI_OPENMP
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 94b8ed1

Please sign in to comment.