Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial port of common plane to RAJA/Umpire #86

Merged
merged 118 commits into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from 115 commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
a2280bc
change type names, make consistent
ebchin Apr 12, 2024
ee294ab
remove CouplingSchemeManager
ebchin Apr 12, 2024
f0881e8
remove extra include
ebchin Apr 12, 2024
37179dc
remove MeshManager
ebchin Apr 12, 2024
0917ca0
updated MeshData
ebchin Apr 16, 2024
13ff46f
introduce TRIBOL_FORALL
steveg21 Apr 16, 2024
8ffe637
add raja tpl
ebchin Apr 16, 2024
733b797
add exec space ids
steveg21 Apr 16, 2024
fbbd362
add exec space to MeshData
ebchin Apr 19, 2024
e3793dd
mesh data template
ebchin Apr 26, 2024
f243bce
port computeFaceData
ebchin Apr 30, 2024
23354d0
gpu port interfacepairfinder
steveg21 Apr 30, 2024
2df89c0
get rid of MeshData template
ebchin Apr 30, 2024
079ffa3
updated method naming
ebchin May 1, 2024
b48590c
Merge branch 'develop' into gpu_coarse_search
ebchin May 1, 2024
3f7182f
use new methods
ebchin May 1, 2024
935f328
Merge branch 'develop' into gpu_coarse_search
ebchin May 1, 2024
5f0d76f
add viewers for gpu kernels
ebchin May 7, 2024
a531ed0
template on InterfacePairs::Viewer
ebchin May 8, 2024
fae38da
test updates
ebchin May 8, 2024
41d8297
remove cp manager
ebchin May 10, 2024
180f50f
get rid of params and cp mgr
ebchin May 13, 2024
6af1080
test fixes
ebchin May 14, 2024
aad6777
small fixes
ebchin May 15, 2024
0206dc3
Merge branch 'develop' into gpu_coarse_search
ebchin May 15, 2024
6ff0397
update common plane timestep
ebchin May 15, 2024
3b1c108
small fixes
ebchin May 15, 2024
8689c80
umpire guard
ebchin May 15, 2024
c9609f0
cuda guard
ebchin May 15, 2024
067ce80
nvcc fixes
ebchin May 15, 2024
4704f32
fix host device tag
ebchin May 15, 2024
e6853f2
allocator id fixes
ebchin May 15, 2024
44ecf04
move output directory from parameters
ebchin May 15, 2024
1907b5a
replace contact planes
ebchin May 15, 2024
7bdfd6d
get rid of struct ctors and dtors
ebchin May 16, 2024
76dddb4
clean up common plane, remove mesh wrapper
ebchin May 19, 2024
d07b619
remove axom shared
ebchin May 20, 2024
1cb3cea
add planes for aligned
ebchin May 20, 2024
9325bb0
umpire debugging
ebchin May 20, 2024
eaf6560
add openmp, clean up initialize in tests
ebchin May 21, 2024
a048d71
add openmp as a tribol dependency
ebchin May 21, 2024
d6e80d9
add umpire to azure
ebchin May 21, 2024
d79e202
guard against using non-sequential with non-common plane
ebchin May 21, 2024
6024617
Merge branch 'develop' into gpu_coarse_search
ebchin May 21, 2024
775717c
spack recipe cleanup
ebchin May 21, 2024
66b72d5
add execution mode test
ebchin May 22, 2024
3aa7dba
move sorted nodes from MeshData
ebchin May 22, 2024
fac7488
add more meshes
ebchin May 22, 2024
e85655e
create device containers
ebchin May 23, 2024
4ee9dca
hip related fixes
ebchin May 23, 2024
745b98e
more hip cmake fixes
ebchin May 23, 2024
649640b
more hip changes
ebchin May 23, 2024
cebc9fa
more hip changes
ebchin May 29, 2024
6af3091
clean up error messages
ebchin Aug 9, 2024
7d4348c
Merge branch 'develop' into gpu_common_plane
ebchin Aug 9, 2024
f3df8d0
error messages on host
ebchin Aug 14, 2024
78b6502
fix transpose slic error
ebchin Aug 16, 2024
db3cbda
devicearray changes
ebchin Aug 23, 2024
73c423f
Merge branch 'develop' into gpu_common_plane
ebchin Aug 23, 2024
509d038
first set of fixes based on review
ebchin Sep 26, 2024
30a891d
updated docs
ebchin Sep 27, 2024
bbee556
brief comments
ebchin Sep 27, 2024
feb6e04
fix non-raja build
ebchin Oct 2, 2024
18b363e
small fix
ebchin Oct 2, 2024
33e34d2
change to mesh view
ebchin Oct 2, 2024
345687e
update doxygen
ebchin Oct 2, 2024
f50ed96
more comments and cleanup
ebchin Oct 2, 2024
aaeec00
more cleanup and doxygen comments
ebchin Oct 3, 2024
d04ae46
doxygen comments
ebchin Oct 3, 2024
e43d39f
comment cleanup
ebchin Oct 3, 2024
5711f72
remove unused aliases
ebchin Oct 3, 2024
2241c35
addressing more comments
ebchin Oct 3, 2024
06936e2
address review comments
ebchin Oct 3, 2024
deeb282
add normals back to print
ebchin Oct 3, 2024
7f62112
fixed normal output
ebchin Oct 3, 2024
d969c57
more doxygen comments
ebchin Oct 3, 2024
1822c6e
normal output fix
ebchin Oct 3, 2024
2ebe619
undo normal output fix
ebchin Oct 3, 2024
8d10e76
change to getMeshView on coupling scheme viewer
ebchin Oct 3, 2024
162b1f0
update contact plane 3d view method
ebchin Oct 3, 2024
adcddd6
remove unneeded mortar views
ebchin Oct 3, 2024
7212bf3
review comment
ebchin Oct 3, 2024
a6a0599
small fixes
ebchin Oct 4, 2024
a7d15dc
cleanup based on comments
ebchin Oct 5, 2024
e8db20c
cleanup and address comments
ebchin Oct 22, 2024
498f5fb
address comments; guard slic calls
ebchin Oct 22, 2024
d261079
cleanup and small fixes from review
ebchin Oct 23, 2024
9c61ed3
doxygen comments; address review comments
ebchin Oct 23, 2024
9d004e3
added comments
ebchin Oct 23, 2024
28d4db4
updated example; address review comments
ebchin Oct 24, 2024
5bf4a91
review comments
ebchin Oct 24, 2024
3603cae
clear up polyX, polyY in Intersection2DPolygon
ebchin Oct 24, 2024
c4b15cc
revert locked versions
ebchin Oct 24, 2024
a18a0b9
update radiuss packages and spack hash
ebchin Oct 24, 2024
a7087a9
update locked packages
ebchin Oct 24, 2024
88304d8
package update related updates
ebchin Oct 28, 2024
6b8e1f5
test whole axom recipe
ebchin Oct 28, 2024
1d7a6db
update spack recipes
ebchin Oct 29, 2024
e2cab8e
build system updates and fixes
ebchin Oct 31, 2024
9cfa282
updated working specs
ebchin Oct 31, 2024
6033961
fix for ruby
ebchin Oct 31, 2024
bc9b00b
add common plane gpu test
ebchin Oct 31, 2024
6b03f0d
fix execution mode test
ebchin Oct 31, 2024
2fb2dfb
some additional output and fix for unified mem
ebchin Oct 31, 2024
0e63fbb
Merge branch 'develop' into gpu_common_plane
ebchin Oct 31, 2024
d63d8ef
disable openmp on CI (mfem TPLs need openmp)
ebchin Oct 31, 2024
f052724
do mfem on cpu with no openmp
ebchin Nov 1, 2024
c771efe
remove extra axom package
ebchin Nov 1, 2024
4c88105
unify null mesh paths through interfacepairfinder
ebchin Nov 8, 2024
e8f93fe
fix 2d centroid calc
ebchin Nov 8, 2024
a72b6a5
robustness fixes
ebchin Nov 8, 2024
087b8e1
semicolon
ebchin Nov 8, 2024
2cc1b6e
fix index on cartesian prod
ebchin Nov 8, 2024
226d8e7
fix indexing again
ebchin Nov 9, 2024
62f335b
skip initialize for empty meshes
ebchin Nov 10, 2024
204d819
move debug output
ebchin Nov 14, 2024
5104dac
add new stuff from gpu branch
ebchin Nov 14, 2024
73e790e
dont forget openmp
ebchin Nov 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitlab/build_ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# This is the shared configuration of jobs for ruby
.on_ruby:
variables:
ALLOC_OPTIONS: "--res=ci --exclusive=user --deadline=now+1hour --mpibind=off"
ALLOC_OPTIONS: "--res=ci --exclusive=user --deadline=now+1hour"
ALLOC_COMMAND: "salloc ${ALLOC_OPTIONS} -N ${ALLOC_NODES} -t ${ALLOC_TIME}"
tags:
- shell
Expand Down
2 changes: 1 addition & 1 deletion .uberenv_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"package_final_phase": "initconfig",
"package_source_dir": "../..",
"spack_url": "https://github.com/spack/spack.git",
"spack_commit": "6d244b3f6776b3697861c6b5cebbee376c30bff3",
"spack_commit": "cade66d842a894075938bc5528475d9fcd8bd559",
"spack_configs_path": "scripts/spack/configs",
"spack_packages_path": ["scripts/spack/radiuss-spack-configs/packages", "scripts/spack/packages"],
"spack_concretizer": "clingo"
Expand Down
1 change: 0 additions & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ variables:
Clang_14_ImageName: 'seracllnl/tpls:clang-14_04-16-24_07h-15m'
GCC_13_ImageName: 'seracllnl/tpls:gcc-13_04-16-24_07h-15m'
HOME_DIR: '/home/serac'
BASE_CMAKE_OPTS: '-UUMPIRE_DIR'

jobs:
- job: Build_and_Test
Expand Down
5 changes: 3 additions & 2 deletions cmake/Options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
# SPDX-License-Identifier: (MIT)

# Get value for some options from corresponding blt options
cmake_dependent_option(TRIBOL_ENABLE_CUDA "Enables Tribol with CUDA support" ON "ENABLE_CUDA" OFF)
cmake_dependent_option(TRIBOL_ENABLE_HIP "Enables Tribol with HIP support" ON "ENABLE_HIP" OFF)
cmake_dependent_option(TRIBOL_USE_CUDA "Enables Tribol with CUDA support" ON "ENABLE_CUDA" OFF)
cmake_dependent_option(TRIBOL_USE_HIP "Enables Tribol with HIP support" ON "ENABLE_HIP" OFF)
cmake_dependent_option(TRIBOL_USE_MPI "Enables MPI in Tribol" ON "ENABLE_MPI" OFF)
cmake_dependent_option(TRIBOL_USE_OPENMP "Enables Tribol with OpenMP support" ON "ENABLE_OPENMP" OFF)
cmake_dependent_option(TRIBOL_ENABLE_TESTS "Enables Tribol Tests" ON "ENABLE_TESTS" OFF)
cmake_dependent_option(TRIBOL_ENABLE_EXAMPLES "Enables Tribol Examples" ON "ENABLE_EXAMPLES" OFF)
cmake_dependent_option(TRIBOL_ENABLE_DOCS "Enables Tribol Docs" ON "ENABLE_DOCS" OFF)
Expand Down
20 changes: 18 additions & 2 deletions cmake/SetupThirdParty.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ include(CMakeFindDependencyMacro)
#------------------------------------------------------------------------------
# Create global variable to toggle between GPU targets
#------------------------------------------------------------------------------
if(TRIBOL_ENABLE_CUDA)
if(TRIBOL_USE_CUDA)
set(tribol_device_depends blt::cuda CACHE STRING "" FORCE)
endif()
if(TRIBOL_ENABLE_HIP)
if(TRIBOL_USE_HIP)
set(tribol_device_depends blt::hip CACHE STRING "" FORCE)
endif()

Expand All @@ -40,6 +40,21 @@ else()
endif()


#------------------------------------------------------------------------------
# RAJA
#------------------------------------------------------------------------------

if (DEFINED RAJA_DIR)
message(STATUS "Setting up external RAJA TPL...")

find_dependency(raja REQUIRED PATHS "${RAJA_DIR}")

set(TRIBOL_USE_RAJA TRUE)
else()
message(STATUS "RAJA support is OFF")
endif()


#------------------------------------------------------------------------------
# axom
#------------------------------------------------------------------------------
Expand Down Expand Up @@ -121,6 +136,7 @@ else()
message(STATUS "Shroud support is OFF")
endif()


#---------------------------------------------------------------------------
# Remove non-existant INTERFACE_INCLUDE_DIRECTORIES from imported targets
# to work around CMake error
Expand Down
1 change: 1 addition & 0 deletions cmake/TribolConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ convert_to_native_escaped_file_path(${PROJECT_SOURCE_DIR} TRIBOL_REPO_DIR)
convert_to_native_escaped_file_path(${CMAKE_BINARY_DIR} TRIBOL_BIN_DIR)

# Generate and install config header
set(TRIBOL_DATA_DIR ${PROJECT_SOURCE_DIR}/data)
tribol_configure_file(${PROJECT_SOURCE_DIR}/src/tribol/config.hpp.in
${PROJECT_BINARY_DIR}/include/tribol/config.hpp)

Expand Down
15 changes: 13 additions & 2 deletions cmake/tribol-config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,17 @@ if(NOT TRIBOL_FOUND)
# Language features
set(TRIBOL_USE_FORTRAN "@ENABLE_FORTRAN@")
set(TRIBOL_USE_MPI "@ENABLE_MPI@")
#set(TRIBOL_USE_CUDA "@TRIBOL_USE_CUDA@")
#set(TRIBOL_USE_OPENMP "@TRIBOL_USE_OPENMP@")
set(TRIBOL_USE_CUDA "@TRIBOL_USE_CUDA@")
set(TRIBOL_USE_HIP "@TRIBOL_USE_HIP@")
set(TRIBOL_USE_OPENMP "@TRIBOL_USE_OPENMP@")

# Config options
set(TRIBOL_USE_SINGLE_PRECISION "@TRIBOL_USE_SINGLE_PRECISION@")
ebchin marked this conversation as resolved.
Show resolved Hide resolved
set(TRIBOL_USE_64BIT_INDEXTYPE "@TRIBOL_USE_64BIT_INDEXTYPE@")

# TPLs
set(TRIBOL_USE_UMPIRE "@TRIBOL_USE_UMPIRE@")
set(TRIBOL_USE_RAJA "@TRIBOL_USE_RAJA@")

#----------------------------------------------------------------------------
# Bring in required dependencies for this axom configuration
Expand All @@ -57,6 +59,15 @@ if(NOT TRIBOL_FOUND)
find_dependency(umpire REQUIRED PATHS "${UMPIRE_DIR}")
endif()

# RAJA is optional
if(TRIBOL_USE_RAJA)
set(TRIBOL_RAJA_DIR "@RAJA_DIR@")
if(NOT RAJA_DIR)
set(RAJA_DIR "${TRIBOL_RAJA_DIR}")
endif()
find_dependency(RAJA REQUIRED PATHS "${RAJA_DIR}")
endif()

# axom is a required TPL. It is either external, or built-in
set(TRIBOL_AXOM_DIR "@AXOM_DIR@")
if(NOT AXOM_DIR)
Expand Down
16 changes: 8 additions & 8 deletions scripts/spack/configs/blueos_3_ppc64le_ib_p9/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,11 @@ spack:

# Globally lock in versions of Devtools
cmake:
version: [3.21.1]
version: [3.23.1]
buildable: false
externals:
- spec: cmake@3.21.1
prefix: /usr/tce/packages/cmake/cmake-3.21.1
- spec: cmake@3.23.1
prefix: /usr/tce/packages/cmake/cmake-3.23.1
doxygen:
version: [1.9.6]
buildable: false
Expand Down Expand Up @@ -238,14 +238,14 @@ spack:

# Globally lock version of third party libraries that work on this platform
axom:
variants: ~examples~fortran~lua~tools~openmp
variants: ~shared~examples~fortran~lua~tools
ebchin marked this conversation as resolved.
Show resolved Hide resolved
camp:
require: "@2024.02.0"
require: "@2024.07.0"
conduit:
require: "@0.9.1~shared~test~examples~utilities"
require: "@0.9.2~shared~test~examples~utilities"
hdf5:
variants: ~shared~mpi
raja:
require: "@2024.02.0~openmp~shared~examples~exercises"
require: "@2024.07.0~shared~examples~exercises"
umpire:
require: "@2024.02.0~openmp~shared~examples"
require: "@2024.07.0~shared~examples"
8 changes: 4 additions & 4 deletions scripts/spack/configs/linux_ubuntu_22/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -167,12 +167,12 @@ spack:

# Globally lock version of third party libraries that work on this platform
axom:
require: "@0.9.0.1~examples~fortran~lua~tools~openmp"
require: "@0.9.0.2~shared~examples~fortran~lua~tools"
camp:
require: "@2024.02.0"
require: "@2024.07.0"
conduit:
variants: ~shared~test~examples~utilities
raja:
require: "@2024.02.0~shared~examples~exercises~openmp"
require: "@2024.07.0~shared~examples~exercises"
umpire:
require: "@2024.02.0~shared~examples~openmp"
require: "@2024.07.0~shared~examples"
6 changes: 4 additions & 2 deletions scripts/spack/configs/toss_4_x86_64_ib/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,11 @@ spack:
prefix: /collab/usr/gapps/axom/devtools/toss_4_x86_64_ib/latest/python-3.10.10

# Globally lock version of third party libraries that work on this platform
axom:
variants: ~shared~examples~fortran~lua~tools
conduit:
variants: ~shared~test~examples~utilities
raja:
require: "@2024.02.0~shared~examples~exercises~openmp"
require: "@2024.07.0~shared~examples~exercises"
umpire:
require: "@2024.02.0~shared~examples~openmp"
require: "@2024.07.0~shared~examples"
Loading