Skip to content

Commit e4eb2d6

Browse files
CusiniMcorbett5Herve Grossrrsettgastklevzoff
authored
feat: Add macOS spack environment. (#291)
* LC Spack Support (#1204) * Spack work. * Working with existing LLNL host configs. * SuiteSparse on Lassen progress. * Trilinos working on Lassen. * HYPRE finally working. * Trilinos MKL TPL * Fixed CHAI version. * Initial commit MacOS spack support * Travis host configs. * Expanded VTK libraries. Co-authored-by: Herve Gross <herve.gross@total.com> * Python interface (#1068) * Add current GEOSX compilers to spack. * Added python interface. * Removed static variables. * Python improvements. * Removed std::string. Co-authored-by: Randolph R. Settgast <settgast1@llnl.gov> * Corbett/references and exceptions (#1318) * Changes to Group and Wrapper to favor references. * Added exceptions to harden the Python interface. * Added a Spack and Uberenv guide. * Changed getConstitutiveRelation and getConstitutiveManager. * Changed getMeshBodies, getMeshBody and getMeshLevel. * Changed getDomainPartition * Changed getRegion and getSubRegion. * Prevent MPI_Init from being called twice, (occurs with pygeosx). * Changed getConstitutiveModel(s). * Removing unnecessary uses of getGroupPointer. * Changed Group::getParent and Wrapper constructor. * Removed function input paths from restart. * Changes for Summit. (#1367) * Spack changes. (#1445) * Use {fmt} for message formatting (#1568) * Adding features for Wellbore meshing (#1424) * added option to specify inner radius of cartesian mapping * fix error in silo output * modifications to wellbore parallel mesh gen + addNeighbor changes to allow ranks to be mutual periodic neighbors (doubly-neighbored) * add hard coded coordinatese in the radial direction * bugfix for integer overflow with hypre int * fixes for mgr on gpu * - Add additional instrumentation for using MGR (make restrictor, compute Auu) - Update hypre linear algebra interface to the latest hypre/mgr - Update MGR recipes for GPU * modified LAIHelperFunctions::separateComponentFilter to batch insert rows. Introduced MatrixBase::separateComponentFilter as a specialized filter, implemented HypreMatrix::separateComponentFilter. * some cleanup for HypreMatrix::separateComponentFilter Co-authored-by: Sy-Tuan Nguyen <45685596+sytuannguyen@users.noreply.github.com> * implement single read variant of HypreMatrix::separateComponentFilter * Use full matrix instead of SDC approximation for mechanics in hydrofrac solver. Fix bug in setting options for mechanics block solver. * Changes to run on Summit. (#1546) Co-authored-by: Randolph R. Settgast <settgast1@llnl.gov> * fix bug from summit update * fix bug in SinglePhasePoromechanicsSolver::implicitStepComplete * resolve host-device ghost index array inconsistency * added annulus option to cylinder geometry. added error check for aperature table * Changes for new compilers on summit/lassen (#1611) * Updated hypre. * Force uberenv to use python3. * Added CUDA 11.0.3 on Summit. * Added GCC 9.1.0 to Summit * Added GCC 9.1.0 to Summit * Changes to work with GCC 9.1.0 on Summit. Co-authored-by: Benjamin Curtice Corbett <corbett5@llnl.gov> * Updating function parCSRtoIJ required by latest hypre version Co-authored-by: wrtobin <tobin6@llnl.gov> Co-authored-by: Quan Bui <mquan.bui@gmail.com> Co-authored-by: Sy-Tuan Nguyen <45685596+sytuannguyen@users.noreply.github.com> Co-authored-by: Ben Corbett <32752943+corbett5@users.noreply.github.com> Co-authored-by: Benjamin Curtice Corbett <corbett5@llnl.gov> Co-authored-by: Nicola Castelletto <castelletto1@llnl.gov> * Format python files with YAPF (#1947) Enabling yapf formatting of python files * Add PT-Scotch as a partitioning method option in VTKMesh (#1996) * Change `geosx` to `geos` in macros, include guards, namespace... (#2392) This patch aims at shrinking `GEOSX` into `GEOS`. - The `geosx` namespace is renamed `geos`. - All the `GEOSX_ASSERT`, `GEOSX_LOG`, … are renamed `GEOS_…` - All the include guards are modified. - All the paths to the old `http://gihub.com/GEOSX/GEOSX` are renamed appropriately - Mention to `GEOSX` in the text of the documentation is changed to `GEOS` Meanwhile, `GEOSX` is kept for the following cases - The executable is still named `geosx`, the examples in the doc still reflect the current naming. - All the tools named after `geosx` kept their `geosx` (_e.g._ `pygeox`, `geosx_xml_tools`) - All the `cmake` configuration flags (_e.g._ `GEOSX_TPL_DIR`, `GEOSX_USE_CUDA`) are unchanged. - The `host-config` files are not changed. - The variables names, classes or files containing `GEOSX` are not modified. * Initial HIP/ROCM Support (#2453) * Ensure unit tests are enabled by default. (#2464) * Add geos-specific option to suppress/enable unit tests, active by default. * Spack Update (#2028) * Add mesa to packages.yaml, vtk issues * modify, add fmt recipe * remove cxx flags from blueos (consistent with RADIUSS and Axom) * Add specific uncrustify version, remove optimization flags from toss3 * Move spack configs and package recipes to separate folders; delete uberenv directory * Add uberenv as a submodule. Add uberenv config file * Bump conduit, add libtools external package * Bill's Conduit/HDF5 changes + switcharoo, try building latest pugixml * Add vtk patches + Try replace hypre-cuda with +hypre+cuda and caliper variant changes * Add camp dependency for RAJA path * make suite-sparse mandatory (spack is not always adding it to spec otherwise) * Change clang@upstream for blueos to clang@9 so clingo doesn't yell * gmpr fix * Use more accurate caliper version and correct readline version * Cleanup vtk script, vtk now builds on lassen * Update to spack 0.18.0 * Update hypre/silo/hdf5/conduit and use older trilinos recipe * Can build all blueos libraries - compilation errors - use netlib-lapack instead of essl * first pass at spack environments * Add spack.yaml for lassen; modify spack.yaml install_tree path to blueos_3_ppc64le_ib_p9_package * Generalize HDF5 and pugixml configuration so both thirdPartyLibs and spack builds work * Update umpire/raja/chai/hypre - only quartz re-tested so far * blueos config - set CUDA 11 as default * Cuda 11 explicit spec * Update CMake version; add gcc-toolchain flag for quartz * Update caliper, adiak, trilinos, cmake requirement, camp version in spack recipe * Update adiak namespace * Add cxx flags (std:: errors), disable hwloc dependency (runtime MPI error) for trilinos recipe * Guard adiak or adiak::adiak target * Add FESAPI spack recipe * pugixml and fmt changes for toss 3 quartz * Update CUDA to 11.2.2, update hypre, add -fPIC flag for hypre~shared, add missing libcublasLt path * use intel-oneapi-mkl instead of intel-mkl; use magic mvapich2; use mpi fortran in superlu-dist; disable fesapi default; update hypre; update cmake * Update CMake to 3.26.3; CMake fortran/CXX error with 3.23.1 * Missing fmt dependency * Upgrade to uberenv spack environments - update uberenv submodule, move to spack.yaml config files, comment out unused recipe patches * Move pygeosx dependencies to a separate spack recipe; update to latest spack release; use older hdf5 recipe; small trilinos change due to spack cmakepackage reorg; add spack environment files for pygeosx; adjust spec check for HYPRE cuda/hip enabled; add project json file for uberenv to build pygeosx; delete old python spec files * Mandate CMake >=3.23 * Spack environment file for toss 3 (rzgenie) * Remove cp unused * Omit uberenv from submodule check * Lock blt version to bypass raja/chai/camp blt::stub error * Make python required dependency; make pygeosx variant toggle * Generate separate host-config for LvArray * Update hypre and umpire versions, Remove some package recipes using git version specifiers where possible * Update spack commit, remove chai and umpire recipes * Remove fesapi support from spack * Remove toss_3 recipe (no more toss_3 systems) * hypre update * Remove unneeded dependencies for pygeosx, add recommendation to build python3 using Linux package manager > spack * Attempt to add openmp variant * Try adding fPIC to cflag as well... * Guard the cuda release flags * Update hypre hash * Try adding cached_cmake.py logic for determining MPIEXEC * Testing spacked docker images * Added uberenv as submodule * Try rocky * Changes to get things working with tpl version updates - includes spack recipe changes, spack version update * Try rocky gcc * Find mpfr, reduce build size * Do not build pygeosx for gcc, build silo~shared * Update raja suite and vtk for github action images * spack environment file updates for LC * Try curl with error * Update .gitignore for spack, update cmake version for blueos * Remove environment variable sets from rocky linux Dockerfiles * Attempt to update LC build script for uberenv * Script arg indexing * Script clang13-cuda12 naming * Keep gcc env vars for mpi4py installation * Try pangea3, separate total environment file into separate pangea and pecan * Remove leftover merge comment * change openmpi spec * Spelling, flag geosx recipe adjustments * Possible rpaths and LD_LIBRARY_PATH options for pangea-3 * cleanup paths, add symlinks so spack can find link dependencies, bump cmake requirement * Have spack build part of texinfo dependencies, install bzip2 for tar * Let spack build ncurses * Use built gettext * Add bison and flex to env * Build scotch using make instead of cmake build system; ~shared/static relevant libraries; adjust essl recipe; fix blas/lapack host-config logic; GEOS_LA_INTERFACE spelling * Disable error for scotch * Fix vtk recipe multiple cxx flags; add no avx compiler flags * Changes to fix rockylinux clang; lock-in clang@17, newer clang@18 fails to configure with CMake; add -fPIC fortran flag to some dependencies * Update hypre version hash * Update hyper version hash for LC spack.yaml files * Try caliper/trilinos/cmake updates + different rockylinux clang workaround * differentiate cuda versions in rocky * Disable deprecated warning failures * Sherlock updates, try define spec in gha yml * uberenv script comment fix * cleanup comment * Try fix for ascii codec decode error * Try set through env variables * Stick with actual ascii codec decode fix, add comment * Remove debug env print * feat: macOS spack environment. * add addr2line * remove hdf5 * Fix Sequoia build: update spack version. * python3-dev * python3-dev in remaining docker files. --------- Co-authored-by: Ben Corbett <32752943+corbett5@users.noreply.github.com> Co-authored-by: Herve Gross <herve.gross@total.com> Co-authored-by: Randolph R. Settgast <settgast1@llnl.gov> Co-authored-by: Sergey Klevtsov <s.klevzoff@gmail.com> Co-authored-by: wrtobin <tobin6@llnl.gov> Co-authored-by: Quan Bui <mquan.bui@gmail.com> Co-authored-by: Sy-Tuan Nguyen <45685596+sytuannguyen@users.noreply.github.com> Co-authored-by: Benjamin Curtice Corbett <corbett5@llnl.gov> Co-authored-by: Nicola Castelletto <castelletto1@llnl.gov> Co-authored-by: Christopher Sherman <sherman27@llnl.gov> Co-authored-by: Sergey Klevtsov <klevtsov@stanford.edu> Co-authored-by: TotoGaz <49004943+TotoGaz@users.noreply.github.com> Co-authored-by: William R Tobin <4522899+wrtobin@users.noreply.github.com> Co-authored-by: Brian Han <han12@llnl.gov>
1 parent edcf6b7 commit e4eb2d6

6 files changed

Lines changed: 160 additions & 3 deletions

File tree

.uberenv_config.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
"package_final_phase": "lvarray_hostconfig",
55
"package_source_dir": "../..",
66
"spack_url": "https://github.com/spack/spack",
7-
"spack_commit": "d66dce2d668a6234504594661506cdd1eaca4adc",
7+
"spack_commit": "2bfcc69fa870d3c6919be87593f22647981b648a",
88
"spack_configs_path": "scripts/spack_configs",
9-
"spack_packages_path": "scripts/spack_packages/packages",
10-
"spack_concretizer": "clingo"
9+
"spack_packages_path": "scripts/spack_packages/packages"
1110
}

docker/Stanford/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ RUN yum install -y \
1515
ca-certificates \
1616
curl \
1717
python3 \
18+
python3-devel \
1819
zlib-devel \
1920
# Additional spack dependencies
2021
python3-pip \

docker/tpl-ubuntu-clang-cuda.Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ RUN ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime && \
2424
openmpi-bin \
2525
libopenmpi-dev \
2626
python3 \
27+
python3-dev \
2728
clang \
2829
# Additional spack dependencies
2930
python3-pip \

docker/tpl-ubuntu-clang.Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ RUN DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles \
2929
openmpi-bin \
3030
libopenmpi-dev \
3131
python3 \
32+
python3-dev \
3233
python3-pip \
3334
python3-sphinx \
3435
doxygen \

docker/tpl-ubuntu-gcc.Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ RUN DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles \
5656
python3 \
5757
python3-pip \
5858
python3-sphinx \
59+
python3-dev \
5960
doxygen \
6061
pkg-config \
6162
xz-utils \
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
spack:
2+
config:
3+
install_tree:
4+
root: $spack/..
5+
projections:
6+
all: '{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
7+
misc_cache: $spack/../misc_cache
8+
test_stage: $spack/../test_stage
9+
build_stage:
10+
- $spack/../build_stage
11+
12+
# Regular TPLs do not need views
13+
view: false
14+
15+
compilers:
16+
- compiler:
17+
spec: apple-clang@16.0.0
18+
paths:
19+
cc: /usr/bin/clang
20+
cxx: /usr/bin/clang++
21+
f77: /opt/homebrew/bin/gfortran
22+
fc: /opt/homebrew/bin/gfortran
23+
flags:
24+
cflags:
25+
cxxflags:
26+
fflags:
27+
operating_system: sequoia
28+
target: aarch64
29+
modules: []
30+
environment:
31+
set: # Needed for scotch
32+
BISON: bison
33+
FLEX: flex
34+
extra_rpaths: []
35+
36+
packages:
37+
all:
38+
target: [aarch64]
39+
compiler: [apple-clang]
40+
providers:
41+
mpi: [openmpi]
42+
blas: [netlib-lapack]
43+
lapack: [netlib-lapack]
44+
45+
# v0.6.2
46+
blt:
47+
require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop"
48+
49+
# master - 10/18/24
50+
hypre:
51+
require: "@git.c893886d15eb57e87dd36efec23693ece3ddc88e"
52+
53+
# v2024.07.0
54+
chai:
55+
require: "@git.df7741f1dbbdc5fff5f7d626151fdf1904e62b19=develop"
56+
57+
# v2024.07.0
58+
umpire:
59+
require: "@git.abd729f40064175e999a83d11d6b073dac4c01d2=develop"
60+
61+
# v2024.07.0
62+
raja:
63+
require: "@git.4d7fcba55ebc7cb972b7cc9f6778b48e43792ea1=develop"
64+
65+
# v2024.07.0
66+
camp:
67+
require: "@git.0f07de4240c42e0b38a8d872a20440cb4b33d9f5=main"
68+
69+
# v2.12.0
70+
caliper:
71+
require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c"
72+
73+
# v0.9.2
74+
conduit:
75+
require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop"
76+
77+
uncrustify:
78+
require: "@git.401a4098bce9dcc47e024987403f2d59d9ba7bd2"
79+
80+
superlu-dist:
81+
require: "@git.0f6efc377df2440c235452d13d28d2c717f832a1"
82+
83+
# Lock down which MPI we are using
84+
openmpi:
85+
buildable: False
86+
externals:
87+
- spec: openmpi@5.0.6
88+
prefix: /opt/homebrew/opt/open-mpi
89+
90+
# System level packages to not build
91+
cmake:
92+
version: [3.29.6]
93+
buildable: false
94+
externals:
95+
- spec: cmake@3.29.6
96+
prefix: /opt/homebrew/opt/cmake
97+
readline:
98+
buildable: false
99+
externals:
100+
- spec: readline@8.2.13
101+
prefix: /opt/homebrew/opt/readline
102+
103+
m4:
104+
buildable: False
105+
externals:
106+
- spec: m4@1.4.6
107+
prefix: /opt/homebrew/opt/m4
108+
perl:
109+
buildable: false
110+
externals:
111+
- spec: perl@5.34.1
112+
prefix: /opt/homebrew/opt/perl
113+
pkg-config:
114+
buildable: false
115+
externals:
116+
- spec: pkg-config@2.3.0
117+
prefix: /opt/homebrew/opt/pkgconf
118+
diffutils:
119+
buildable: False
120+
externals:
121+
- spec: diffutils@3.11
122+
prefix: /opt/homebrew/opt/diffutils
123+
124+
autoconf:
125+
buildable: False
126+
externals:
127+
- spec: autoconf@2.72
128+
prefix: /opt/homebrew/opt/autoconf
129+
automake:
130+
buildable: False
131+
externals:
132+
- spec: automake@1.17
133+
prefix: /opt/homebrew/opt/automake
134+
libtool:
135+
buildable: False
136+
externals:
137+
- spec: libtool@2.5.4
138+
prefix: /opt/homebrew/opt/libtool
139+
gettext:
140+
buildable: False
141+
externals:
142+
- spec: gettext@0.23.1
143+
prefix: /opt/homebrew/opt/gettext
144+
flex:
145+
buildable: False
146+
externals:
147+
- spec: flex@2.6.4
148+
prefix: /opt/homebrew/opt/flex
149+
150+
addr2line:
151+
buildable: False
152+
externals:
153+
- spec: addr2line@2.43.1
154+
prefix: /opt/homebrew/opt/binutils

0 commit comments

Comments
 (0)