xref: /petsc/config/examples/arch-alcf-polaris.py (revision 5d94af915975a44cdbbbdac8b0721f8342f53669)
1*5d94af91SJunchao Zhang#!/usr/bin/python3
2*5d94af91SJunchao Zhang
3*5d94af91SJunchao Zhang# Due to a series of issues (nvhpc versions etc), we don't have a workaround
4*5d94af91SJunchao Zhang# to use the Polaris default modules "PrgEnv-cray nvhpc" to build petsc
5*5d94af91SJunchao Zhang# with Kokkos, we use PrgEnv-gnu instead. One needs to
6*5d94af91SJunchao Zhang#
7*5d94af91SJunchao Zhang# module load cudatoolkit-standalone PrgEnv-gnu cray-libsci
8*5d94af91SJunchao Zhang#
9*5d94af91SJunchao Zhang# Note cray-libsci provides BLAS etc. In summary, we have
10*5d94af91SJunchao Zhang#
11*5d94af91SJunchao Zhang# $ module list
12*5d94af91SJunchao Zhang
13*5d94af91SJunchao Zhang# Currently Loaded Modules:
14*5d94af91SJunchao Zhang#   1) craype-x86-rome          5) cmake/3.23.2                    9) gcc/11.2.0         13) cray-pmi/6.1.2       17) PrgEnv-gnu/8.3.3
15*5d94af91SJunchao Zhang#   2) libfabric/1.11.0.4.125   6) craype-accel-nvidia80          10) craype/2.7.15      14) cray-pmi-lib/6.0.17
16*5d94af91SJunchao Zhang#   3) craype-network-ofi       7) cray-libsci/21.08.1.2          11) cray-dsmml/0.2.2   15) cray-pals/1.1.7
17*5d94af91SJunchao Zhang#   4) perftools-base/22.05.0   8) cudatoolkit-standalone/11.8.0  12) cray-mpich/8.1.16  16) cray-libpals/1.1.7
18*5d94af91SJunchao Zhang
19*5d94af91SJunchao Zhangif __name__ == '__main__':
20*5d94af91SJunchao Zhang  import sys
21*5d94af91SJunchao Zhang  import os
22*5d94af91SJunchao Zhang  sys.path.insert(0, os.path.abspath('config'))
23*5d94af91SJunchao Zhang  import configure
24*5d94af91SJunchao Zhang  configure_options = [
25*5d94af91SJunchao Zhang    '--with-cc=cc',
26*5d94af91SJunchao Zhang    '--with-cxx=CC',
27*5d94af91SJunchao Zhang    '--with-fc=ftn',
28*5d94af91SJunchao Zhang    '--with-debugging=0',
29*5d94af91SJunchao Zhang    '--with-cuda',
30*5d94af91SJunchao Zhang    '--with-cudac=nvcc',
31*5d94af91SJunchao Zhang    '--with-cuda-arch=80', # Since there is no easy way to auto-detect the cuda arch on the gpu-less Polaris login nodes, we explicitly set it.
32*5d94af91SJunchao Zhang    '--download-kokkos',
33*5d94af91SJunchao Zhang    '--download-kokkos-kernels',
34*5d94af91SJunchao Zhang  ]
35*5d94af91SJunchao Zhang  configure.petsc_configure(configure_options)
36*5d94af91SJunchao Zhang
37