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

Import next #259

Merged
merged 2,355 commits into from
Mar 27, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
2355 commits
Select commit Hold shift + click to select a range
b56b914
Introduce comm_t struct, remove comm, rank, and size from mesh object…
MalachiTimothyPhillips Feb 23, 2021
af24918
Merge remote-tracking branch 'moving-mesh/master' into next
MalachiTimothyPhillips Feb 25, 2021
24f896d
cleanup + use GL instead of GLL for cubature
Feb 25, 2021
9d28c9d
Fix compiler errors from calling linAlg_t constructor, fix ethier CI …
MalachiTimothyPhillips Feb 25, 2021
8ef391e
Merge remote-tracking branch 'malachi-repo/platform-refactor' into next
MalachiTimothyPhillips Feb 25, 2021
4ce92e5
Resolve compiler errors
MalachiTimothyPhillips Feb 25, 2021
2f9245a
Merge remote-tracking branch 'stgeke-repo/master' into next
MalachiTimothyPhillips Feb 25, 2021
b461e11
Change instances of 256 to p_blockSize
MalachiTimothyPhillips Feb 26, 2021
57f8a66
Put nek_ functions into own namespace. Clarify name of copyTo -> copy…
MalachiTimothyPhillips Feb 26, 2021
1f9c3b6
Remove Nblock definition where possible
MalachiTimothyPhillips Feb 26, 2021
2479494
Remove multiWeightedInnerProduct from ellipticResidualProjection
MalachiTimothyPhillips Mar 1, 2021
a636145
Remove ResidualProjection::multiWeightedInnerProd, instead prefering …
MalachiTimothyPhillips Mar 1, 2021
7b78656
Clean up update PCG kernels
MalachiTimothyPhillips Mar 1, 2021
bee8e77
Revert platform change in ogs
MalachiTimothyPhillips Mar 1, 2021
500ea1d
Remove ogs dependency on nekRS
MalachiTimothyPhillips Mar 1, 2021
f4876c9
Add timers to dot products in linAlg_t
MalachiTimothyPhillips Mar 1, 2021
a6cde18
Remove ellipticScaledAdd
MalachiTimothyPhillips Mar 2, 2021
80aef2f
Remove ellipticWeightedNorm2
MalachiTimothyPhillips Mar 2, 2021
ccf877f
Remove unused kernels. Remove commented code.
MalachiTimothyPhillips Mar 2, 2021
4fd21e6
Consistently name mesh objects as either meshV or meshT
MalachiTimothyPhillips Mar 2, 2021
39ae45e
Make cds->meshT an array
MalachiTimothyPhillips Mar 2, 2021
a9f061f
Remove usage of typedef struct. This declaration style behaves exaclt…
MalachiTimothyPhillips Mar 2, 2021
a7ee5ef
Add warpSize field to platform_t object
MalachiTimothyPhillips Mar 2, 2021
3e89c9f
add subcycling within a timestep
stgeke Mar 2, 2021
d40f38d
Remove o_wrk fields from nrs_t, cds_t
MalachiTimothyPhillips Mar 2, 2021
8ec91b2
Rename o_Dmatrices -> o_D. Remove duplicate occa::memory fields from …
MalachiTimothyPhillips Mar 2, 2021
3fa3d5f
Remove un-needed fields, remove unused file
MalachiTimothyPhillips Mar 2, 2021
3d9b462
Remove nrs->Ntotal, cds->Ntotal
MalachiTimothyPhillips Mar 3, 2021
d1619d3
fix time passed to executeStep + some minor buld system changes
stgeke Mar 3, 2021
ef0a5c8
Merge branch 'next-my-changes' into next
MalachiTimothyPhillips Mar 3, 2021
15345fc
Merge branch 'next-my-changes' into next
MalachiTimothyPhillips Mar 3, 2021
1cd0b21
Fix compiler errors with merge
MalachiTimothyPhillips Mar 3, 2021
e32e57b
nrs->SNrk -> nrs->nRK, extC to coeffRK
MalachiTimothyPhillips Mar 3, 2021
7613de0
Remove cds->fieldOffset
MalachiTimothyPhillips Mar 3, 2021
f9b7ac1
use source dir variable in makefile
stgeke Mar 3, 2021
8342c08
Split '3rd_party/nek5000/' into commit 'e721861d58d77f4cebd99845613a0…
stgeke Mar 3, 2021
fcfc6c4
avoid running nekconfig
stgeke Mar 3, 2021
e13fbb7
Squashed '3rd_party/nek5000/' changes from e721861d..f9b7ac1b
stgeke Mar 3, 2021
0a40426
Merge commit 'e13fbb7984233dd27cd1c356168ab8d3a87a3e89' into next
stgeke Mar 3, 2021
e758098
(split) Merge commit 'e13fbb7984233dd27cd1c356168ab8d3a87a3e89' into …
stgeke Mar 3, 2021
cb36fca
Remove nrs->fieldOffset references
MalachiTimothyPhillips Mar 3, 2021
33f0bad
Rename RK coefficients
MalachiTimothyPhillips Mar 3, 2021
af351ba
remove some stdout while running make
stgeke Mar 3, 2021
8e2868d
Split '3rd_party/nek5000/' into commit 'e758098707fb92ed725e7991f0523…
stgeke Mar 3, 2021
62bdf4f
Squashed '3rd_party/nek5000/' changes from e7580987..af351ba4
stgeke Mar 3, 2021
ca5fa89
Merge commit '62bdf4fc1a6372692b72371946bf0811011f879d' into next
stgeke Mar 3, 2021
8219a60
Merge commit '62bdf4fc1a6372692b72371946bf0811011f879d' into next
stgeke Mar 3, 2021
ee7c497
get grid of nekconfig at runtime
stgeke Mar 4, 2021
de5303c
get grid of nekconfig at runtime
stgeke Mar 4, 2021
6653f47
Merge branch 'next' of https://github.com/stgeke/nekRS-ghsa-4gjg-9xcf…
stgeke Mar 4, 2021
fe9a180
Merge branch 'next' of https://github.com/stgeke/nekRS-ghsa-4gjg-9xcf…
stgeke Mar 4, 2021
ace6d88
Remove wrk buffer from nrs_t, prefering to use platform->mempool. Thi…
MalachiTimothyPhillips Mar 3, 2021
4a06694
Fix moving cylinder test case.
MalachiTimothyPhillips Mar 3, 2021
1fb8e3a
Remove sqrt from weightedNorm2Many
MalachiTimothyPhillips Mar 4, 2021
c0c0abf
fix wrong coeffs
stgeke Mar 4, 2021
76adaf5
Fix error in mv_cyl CI test
MalachiTimothyPhillips Mar 6, 2021
10d36e0
Remove unused kernels.
MalachiTimothyPhillips Mar 6, 2021
250e0bf
Do not allocate o_invDegree. In block solver case, do not set up addi…
MalachiTimothyPhillips Mar 6, 2021
3250b1f
Remove unused kernels in the block solver case
MalachiTimothyPhillips Mar 6, 2021
9602a1a
Consolidate kernel defines to the relevant kernels
MalachiTimothyPhillips Mar 6, 2021
d7735c2
Remove misleading while loop in linAlg reduction kernels. Remove unus…
MalachiTimothyPhillips Mar 6, 2021
922a64c
Pass filename, kernelname as strings to kernel builder.
MalachiTimothyPhillips Mar 6, 2021
ba3b19f
Remove unused geometric factors from mesh object
MalachiTimothyPhillips Mar 6, 2021
1fcbcbf
Avoid deadlock in lowMach kernel setup.
MalachiTimothyPhillips Mar 7, 2021
8d7da85
Fix bug in computing weighted norm by ensuring that shared memory is …
MalachiTimothyPhillips Mar 7, 2021
71c739b
Remove un-necessary assignment of platform->o_slice components
MalachiTimothyPhillips Mar 7, 2021
78c269c
Add calloc function to device_t which 0-initializes the device memory.
MalachiTimothyPhillips Mar 7, 2021
be531a9
Remove o_BdivW from mesh_t, instead computing it as needed inside the…
MalachiTimothyPhillips Mar 7, 2021
6b10a8d
Move nrs/cds/mesh kernels into their own respective directories, rena…
MalachiTimothyPhillips Mar 7, 2021
987952d
Rename kernels
MalachiTimothyPhillips Mar 7, 2021
09a1e4d
Correct the filenames that the kernels are pointing to
MalachiTimothyPhillips Mar 7, 2021
7e46b94
Change the kernel names, too.
MalachiTimothyPhillips Mar 7, 2021
493df13
Fix oklpath when building kernels
MalachiTimothyPhillips Mar 7, 2021
12ea869
Add options to platform_t
MalachiTimothyPhillips Mar 8, 2021
75a1983
Add ifCub, meshQuality metric options to geometric factor kernel
MalachiTimothyPhillips Mar 8, 2021
0fe307d
remote some unneccessary files + adjust job submission scripts + chec…
stgeke Mar 8, 2021
bf1c580
define p_cubNq only for kernels who need it
stgeke Mar 8, 2021
dda7941
allow user to specify compiler flags used by OCCA
stgeke Mar 8, 2021
522adbf
Add device_t::malloc that calloc's the device memory under the hood.
MalachiTimothyPhillips Mar 8, 2021
2cb76f9
Initialize mesh->nAB
MalachiTimothyPhillips Mar 8, 2021
fcc4b7c
Always print out mesh quality metrics during moving mesh routines
MalachiTimothyPhillips Mar 8, 2021
2b1af50
Move kernel loading, mesh setup as soon as possible
MalachiTimothyPhillips Mar 8, 2021
d07ba0c
Use geometric factor kernel
MalachiTimothyPhillips Mar 8, 2021
24d0406
Use kernel to compute geometric factors
MalachiTimothyPhillips Mar 8, 2021
4bf89a7
Use surface geometric factors kernel in computing geometric factors
MalachiTimothyPhillips Mar 8, 2021
22ae5d6
Use nrs->fieldOffset, make cds->fieldOffset an array. Remove fieldOff…
MalachiTimothyPhillips Mar 8, 2021
b22281b
Add par key entry for moving mesh solver type.
MalachiTimothyPhillips Mar 8, 2021
15e36ba
Initialize meshT->fieldOffset for later use in mesh_t::move()
MalachiTimothyPhillips Mar 8, 2021
1c0bc74
Consistently name kernels which depend on mesh topology type (e.g., H…
MalachiTimothyPhillips Mar 9, 2021
bee194e
Consdoliate specialized pfloat kernels into elliptic, separate Chebys…
MalachiTimothyPhillips Mar 9, 2021
9743af1
Remove meshT from nrs struct
MalachiTimothyPhillips Mar 9, 2021
bbf5a52
fix wrong index in ellipticSerialUpdatePCG.c + minor refactor in weig…
stgeke Mar 9, 2021
5913efb
Revert "Use surface geometric factors kernel in computing geometric f…
MalachiTimothyPhillips Mar 9, 2021
1e989d4
Revert "Use kernel to compute geometric factors"
MalachiTimothyPhillips Mar 9, 2021
479a1ac
Revert "Use geometric factor kernel"
MalachiTimothyPhillips Mar 9, 2021
dca7058
Split '3rd_party/nek5000/' into commit 'fe9a180f19d3d1df4cc5961a15324…
stgeke Mar 9, 2021
8534e4a
Consistently name linalg kernels/functions with a postfix
MalachiTimothyPhillips Mar 9, 2021
769f342
Merge commit 'eab3cc67126d07e7eda6ddba226c2ba8faa2f663' into next
stgeke Mar 9, 2021
eab3cc6
Squashed '3rd_party/nek5000/' changes from fe9a180f..af351ba4
stgeke Mar 9, 2021
e912178
Split '3rd_party/occa/' into commit '7e8551b6696cacae31cc4dd1b2dfe5ec…
stgeke Mar 9, 2021
3d774d8
Squashed '3rd_party/occa/' changes from 7e8551b6..382076f5
stgeke Mar 9, 2021
eeff9d1
Merge commit '3d774d83385fa2b283cd8d251747ce24593bcecc' into next
stgeke Mar 9, 2021
1705195
Merge commit '3d774d83385fa2b283cd8d251747ce24593bcecc' into next
stgeke Mar 9, 2021
f037db7
Add SERIAL variants for linAlg reduction kernels
MalachiTimothyPhillips Mar 9, 2021
4bac945
update to latest OCCA
stgeke Mar 9, 2021
d3080f8
Merge branch 'next' of https://github.com/stgeke/nekRS-ghsa-4gjg-9xcf…
stgeke Mar 9, 2021
2c0ee3c
Fix SERIAL -> Serial.
MalachiTimothyPhillips Mar 9, 2021
b2af216
Remove mesh->maskedGlobalIds
MalachiTimothyPhillips Mar 9, 2021
17d916b
Introduce small structs to hold host and device memory pools
MalachiTimothyPhillips Mar 9, 2021
f595e5d
Point OCCA_CXX to g++, fix potential race condition in Schwarz kernels
MalachiTimothyPhillips Mar 9, 2021
265907b
Correctly name nekCopyTo/From functions
MalachiTimothyPhillips Mar 9, 2021
4df95f1
Fix kernel compile bug in mv_cyl test case
MalachiTimothyPhillips Mar 9, 2021
9cc8a1f
Move linAlg CI testing as early as possible.
MalachiTimothyPhillips Mar 9, 2021
49e20ff
Minor formatting changes to Schwarz kernels
MalachiTimothyPhillips Mar 10, 2021
e17dd6d
Tentative initial implementation of eddy_mv test case in nekRS
MalachiTimothyPhillips Mar 10, 2021
a7de706
Split '3rd_party/occa/' into commit '1705195b46a70941ac31b569742b68fd…
Mar 10, 2021
60cf0a3
fix opencl long int flag
Mar 10, 2021
5929857
Squashed '3rd_party/occa/' changes from 1705195b..ef7be842
Mar 10, 2021
99f3cdc
Merge commit '5929857a89d8c0596a9886e84596087c45d001cf' into next
Mar 10, 2021
ae79256
switch back to our (older) occa version
Mar 10, 2021
726f2cd
remove occa
Mar 10, 2021
af7ee6a
Squashed '3rd_party/occa/' content from commit d23e493e
Mar 10, 2021
d4b8c69
Merge commit 'af7ee6a2b13664ce9fb4ec71c62a064c22188a3d' as '3rd_party…
Mar 10, 2021
18e245d
Merge commit 'af7ee6a2b13664ce9fb4ec71c62a064c22188a3d' as '3rd_party…
Mar 10, 2021
70e706e
init dummy input in gs_setup
Mar 10, 2021
d7d848f
some updates for eddy_mv
Mar 10, 2021
4b70398
Split '3rd_party/occa/' into commit '18e245d52986d9ddd7cb47c3116790ce…
stgeke Mar 10, 2021
c4c3a7e
Split '3rd_party/occa/' into commit '18e245d52986d9ddd7cb47c3116790ce…
stgeke Mar 10, 2021
7c78cb1
Squashed '3rd_party/occa/' changes from 18e245d52..f4ca7637d
stgeke Mar 10, 2021
2cee6de
Merge commit '7c78cb1db7a9e9a84485b9e7269b665ca3da7c67' into next
stgeke Mar 10, 2021
afaaf76
Merge commit '7c78cb1db7a9e9a84485b9e7269b665ca3da7c67' into next
stgeke Mar 10, 2021
324559a
eddy_mv is timestepping now but pres does not converge
stgeke Mar 10, 2021
391b8fe
some eddy_mv adjustments
stgeke Mar 10, 2021
ca6b2ff
allow for zero usr file
stgeke Mar 10, 2021
5762323
Adjust check on number of velocity iterations in mv_cyl test case
MalachiTimothyPhillips Mar 11, 2021
8cee083
Use correct scratch space for computing BdivW terms
MalachiTimothyPhillips Mar 11, 2021
a907289
Pass coefficients to subcycling kernels
MalachiTimothyPhillips Mar 11, 2021
5fbff95
Rename device_t::calloc to device_t::malloc
MalachiTimothyPhillips Mar 11, 2021
b29da2d
Add device_t::malloc(words, wordSize, occa::memory) function
MalachiTimothyPhillips Mar 11, 2021
f14922a
Add check for negative Jacobian in moving mesh update
MalachiTimothyPhillips Mar 11, 2021
4d46b2f
Ensure that time-dependent mass matrix is included in BdivWKernel. En…
MalachiTimothyPhillips Mar 11, 2021
22e86b9
Use (U-W), not U in subcycling term
MalachiTimothyPhillips Mar 11, 2021
1f29672
Make eddy_mv ci test
MalachiTimothyPhillips Mar 11, 2021
3689e1c
refactor sumMakef
stgeke Mar 11, 2021
62dd655
Fix bug in computing B div mesh velocity in moving mesh + subcycling …
MalachiTimothyPhillips Mar 11, 2021
123ba76
Demonstrate correct implementation of the velocity subcycling in the …
MalachiTimothyPhillips Mar 11, 2021
51df54d
Cleanup interface to subcycling kernels in non-moving mesh case
MalachiTimothyPhillips Mar 12, 2021
3997394
Finish up the velocity subcycling + moving mesh implementation withou…
MalachiTimothyPhillips Mar 12, 2021
883ad52
Finish up scalar subcycling + movingg mesh implementation with/withou…
MalachiTimothyPhillips Mar 12, 2021
5eacaa1
Adjust CI errors in eddy_mv case
MalachiTimothyPhillips Mar 12, 2021
d8cbf2b
some cosmetic changes
stgeke Mar 12, 2021
5353ec8
move lagging into makef+makeq
stgeke Mar 12, 2021
d4156d6
Rename o_bmst -> o_LMMe
MalachiTimothyPhillips Mar 12, 2021
b14ff4e
Always initialize device memory in device_t
MalachiTimothyPhillips Mar 12, 2021
095326f
add moving mesh CI tests for ethier
stgeke Mar 13, 2021
f505c6a
fix moving mesh par keys
stgeke Mar 13, 2021
6057fc7
set default mesh nAB= 3
stgeke Mar 13, 2021
7845bc2
Keep nStagesSum kernels generic
MalachiTimothyPhillips Mar 12, 2021
6796f0c
Fix valgrind issues
MalachiTimothyPhillips Mar 12, 2021
76377c4
Rename convection kernel to a reasonable name
MalachiTimothyPhillips Mar 12, 2021
4f8c20a
Consolidate subcycling initialization into a single kernel
MalachiTimothyPhillips Mar 13, 2021
aa16390
Use subcycleInitU0Kernel in subcycling initialization, regardless of …
MalachiTimothyPhillips Mar 13, 2021
58b6d4b
Consolidate velocity subcycling kernels into a single kernel
MalachiTimothyPhillips Mar 13, 2021
48e6806
updated release notes
stgeke Mar 14, 2021
7fa39ae
updated readme
stgeke Mar 14, 2021
ab944af
Clarify meaning of Urst kernels/variables names
MalachiTimothyPhillips Mar 14, 2021
5bf1ccd
Change advection kernels to use Urst, which has already been computed
MalachiTimothyPhillips Mar 14, 2021
fce29c2
Use platform->device.mode() to check for Serial mode
MalachiTimothyPhillips Mar 14, 2021
343f1f1
Fix CFL kernel to base CFL on difference between fluid and mesh veloc…
MalachiTimothyPhillips Mar 14, 2021
4726fd3
Introduce arrays in cds to help index based on scan/sum of field offs…
MalachiTimothyPhillips Mar 15, 2021
635f3bc
use nEXT=3 by default in case of no-subcycling
stgeke Mar 15, 2021
4d3f828
fix BDF2/EXT3 issue + disable support for N>9 for now because of Seri…
stgeke Mar 15, 2021
d97e53b
Enable up to N=10 support and fix error message in case N>10
MalachiTimothyPhillips Mar 15, 2021
260caa6
Avoid recompiling all kernels when user kernel params change in .oudf…
MalachiTimothyPhillips Mar 15, 2021
8e6918a
Rename cds->meshT array to cds->mesh
MalachiTimothyPhillips Mar 15, 2021
b8399e8
Fix incorrect memory access error in eddy_mv case
MalachiTimothyPhillips Mar 15, 2021
baca391
Fix conj_ht test case
MalachiTimothyPhillips Mar 16, 2021
c287b14
fix realloc issues + minor clean up
stgeke Jan 16, 2021
0815bfb
update nrsqsub_slurm
stgeke Mar 17, 2021
57faf07
cosmetic changes
stgeke Mar 17, 2021
b6b9985
Free host scratch space in oogs.cpp. Use the appropriate overload of …
MalachiTimothyPhillips Mar 17, 2021
8a6fb18
Loosen floor tolerances on using relative Linf norm in channel CI test
MalachiTimothyPhillips Mar 17, 2021
cd630cd
call udfExecuteStep in main instead of setup
stgeke Mar 17, 2021
f2a531c
forgot to remove udf executeStep call
stgeke Mar 18, 2021
76bc14d
remove unintent gatherOffset alloc
stgeke Mar 18, 2021
c9e6e29
some oogs cosmetics
stgeke Mar 18, 2021
6881116
Fix CHT bug in subcycling. Add conj_ht CI mode to actually test CHT +…
MalachiTimothyPhillips Mar 18, 2021
0eb9c95
For pressure solver, cap tolerance to 1e-8
MalachiTimothyPhillips Mar 18, 2021
ed8c37c
Fix SERIAL -> Serial in oogs
MalachiTimothyPhillips Mar 18, 2021
5bd4999
Re-introduce Stefan's mesh creation simplification
MalachiTimothyPhillips Mar 18, 2021
8120ab1
Add host + device times in ogsTimer interface
MalachiTimothyPhillips Mar 18, 2021
3210aad
set serial in constructor of linAlg
stgeke Mar 19, 2021
68e8cf0
refactor MPI buf handling in oogs + make v-mesh a member of mesh
stgeke Mar 19, 2021
d345421
set mesh->Nlocal in meshCreate
stgeke Mar 19, 2021
a6ea104
okl/elliptic/ellipticUpdatePCG.okl
Mar 19, 2021
7c1c7e7
add missing okl
Mar 19, 2021
de05d5e
Make mesh_t::fluid a mesh_t* instead of a void*
MalachiTimothyPhillips Mar 19, 2021
fe1833d
Merge commit '980086bd0e0cc4f437950da7de5d3c66c8499a41' into next
stgeke Mar 20, 2021
980086b
Squashed '3rd_party/nek5000/' changes from af351ba44..6bc2a844b
stgeke Mar 20, 2021
cde7c6e
Split '3rd_party/nek5000_parRSB/' into commit 'afaaf762dee3a3b2b695cc…
stgeke Mar 20, 2021
442f995
update update3rdpartxy
stgeke Mar 20, 2021
d39906d
Merge commit '67d6a56b96e840071864cb28f50a15d1a2cc6559' into next
stgeke Mar 20, 2021
67d6a56
Squashed '3rd_party/nek5000_parRSB/' changes from afaaf762d..9690625bb
stgeke Mar 20, 2021
7ee40e5
update to latest parRSB
stgeke Mar 20, 2021
0b9bbcb
Merge commit '22105e6059f68aef87a75d7e34a6ca6fc61947ca' into next
stgeke Mar 20, 2021
22105e6
Squashed '3rd_party/nek5000/' changes from 6bc2a844b..6c3fedca8
stgeke Mar 20, 2021
3549c2f
cosmetic stdout changes
stgeke Mar 20, 2021
73a2842
Merge commit '5b1da45e319168384a017fc4fe3a956f5cf29129' into next
stgeke Mar 20, 2021
5b1da45
Squashed '3rd_party/nek5000/' changes from 6c3fedca8..bb1391c46
stgeke Mar 20, 2021
d9a3275
Merge commit 'db01b78b507663d198a25d1ee35869d7e8c8f998' into next
stgeke Mar 20, 2021
db01b78
Squashed '3rd_party/nek5000/' changes from bb1391c46..7d21d4edd
stgeke Mar 20, 2021
d6fa24a
fix typo
stgeke Mar 20, 2021
9478454
Reset mesh_t::fieldOffset (required by moving mesh)
MalachiTimothyPhillips Mar 20, 2021
f41de7d
Change instances of options.compareArgs('THREAD MODEL', 'SERIAL') to …
MalachiTimothyPhillips Mar 20, 2021
7aa630e
correct some timers
stgeke Mar 22, 2021
5d72c0f
Introduce serial version of strong subcycling cubature kernel
MalachiTimothyPhillips Mar 21, 2021
07014ed
Add serial variant for cds subcycling cubature kernel
MalachiTimothyPhillips Mar 22, 2021
4b8b322
Fix bug in non-cubature subcycling advection kernels
MalachiTimothyPhillips Mar 22, 2021
7281847
print BF + RHS norm if verbose
Mar 22, 2021
6afc09a
Revert "Remove mesh->maskedGlobalIds"
MalachiTimothyPhillips Mar 22, 2021
67d4076
Revert "Revert "Remove mesh->maskedGlobalIds""
MalachiTimothyPhillips Mar 22, 2021
bd3fb5a
During first timestep, check the number of pressure iterations in eth…
MalachiTimothyPhillips Mar 22, 2021
be58044
Remove register variables, preferring 3D shmem structure
MalachiTimothyPhillips Mar 22, 2021
c9c1cad
Revert changes to makenrs
MalachiTimothyPhillips Mar 22, 2021
8cf79c9
Cleanup serial variant of cds/cubature subcycling kernel
MalachiTimothyPhillips Mar 22, 2021
e220ed7
Re-order arguments to kernel consistently -- i.e., result of kernel c…
MalachiTimothyPhillips Mar 23, 2021
e3a6ca1
Additional subcycling kernel improvements for serial
MalachiTimothyPhillips Mar 24, 2021
2fbc0d8
Alter serial cds subcycling kernel to match performance optimizations…
MalachiTimothyPhillips Mar 24, 2021
8494031
Disable FDM overlap in serial mode
MalachiTimothyPhillips Mar 24, 2021
ad6e103
Avoid branching statement in schwarz smoother
MalachiTimothyPhillips Mar 24, 2021
a8062e7
Squashed '3rd_party/nek5000/' changes from 7d21d4ed..3e3eb9ac
Mar 24, 2021
36d43a2
Merge commit 'a8062e776fa75d1222ced447ce4d4bcce9190a4d' into next
Mar 24, 2021
8776e16
Squashed '3rd_party/nek5000_parRSB/' changes from 9690625b..b6d60ca4
Mar 24, 2021
2e16658
Merge commit '8776e16c10720163fcfba4fbc3cf6d3679269936' into next
Mar 24, 2021
dcab412
Commit additional improvements to Schwarz kernels.
MalachiTimothyPhillips Mar 24, 2021
53765a3
Further improve schwarz kernels for Serial mode
MalachiTimothyPhillips Mar 24, 2021
8472716
Make serial implementation of coarsen and prolongation kernel
Mar 25, 2021
f625f1a
Remove all references to p_Nelements
Mar 26, 2021
a695fe1
use OOGS_AUTO even in SERIAL + use only host based timer in ogs for now
Mar 26, 2021
fa3a08e
remove eddy_mv
Mar 26, 2021
f169b28
Check for OpenMP mode when selectively building specialized serial ke…
MalachiTimothyPhillips Mar 26, 2021
38bfa3b
Mark all serial loops as being parallel
MalachiTimothyPhillips Mar 26, 2021
92da361
In OpenMP mode, do not set omp_set_num_threads to 1
MalachiTimothyPhillips Mar 26, 2021
5600fc9
Fix errors in OpenMP mode, correctly set the number of threads after …
MalachiTimothyPhillips Mar 26, 2021
1cd864e
generate nrssys.hpp at build time
Mar 27, 2021
903e559
disabled openMP + enable occa use_host_pointer
Mar 27, 2021
e67b2c8
Merge https://github.com/nek5000/nekrs into next
Mar 27, 2021
5867170
update travis tests
Mar 27, 2021
87b62d0
for TRAVIS do not wait for user input running makenrs
Mar 27, 2021
9f790f9
install generated nrssys.hpp + delete co2 files of examples
Mar 27, 2021
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
Prev Previous commit
Next Next commit
Make serial implementation of coarsen and prolongation kernel
  • Loading branch information
Malachi Timothy Phillips authored and Malachi Timothy Phillips committed Mar 25, 2021
commit 8472716d89b24a046b0ef73bc045df6cf97e49c4
96 changes: 96 additions & 0 deletions okl/elliptic/ellipticPreconCoarsenHex3D.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
/*

The MIT License (MIT)

Copyright (c) 2017 Tim Warburton, Noel Chalmers, Jesse Chan, Ali Karakus

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

*/
extern "C" void ellipticPreconCoarsenHex3D(const dlong& Nelements,
const dfloat* __restrict__ R,
const dfloat* __restrict__ qf,
dfloat* __restrict__ qc)
{
dfloat s_q[p_NqFine][p_NqFine];
dfloat s_Pq[p_NqCoarse][p_NqFine];
dfloat s_R[p_NqCoarse][p_NqFine];
dfloat s_RT[p_NqFine][p_NqCoarse];
dfloat r_q[p_NqFine][p_NqFine][p_NqCoarse];
for(int j = 0; j < p_NqCoarse; ++j){
for(int i = 0; i < p_NqFine; ++i) {
const int t = i + j * p_NqFine;
const dfloat r = R[t];
s_R[j][i] = r;
s_RT[i][j] = r;
}
}
for(dlong e = 0; e < Nelements; ++e) {

for(int j = 0; j < p_NqFine; ++j)
for(int i = 0; i < p_NqFine; ++i) {
for(int k = 0; k < p_NqCoarse; ++k)
r_q[j][i][k] = 0;

for(int k = 0; k < p_NqFine; ++k) {
const int id = i + j * p_NqFine + k * p_NqFine * p_NqFine + e * p_NpFine;
const dfloat tmp = qf[id];

#pragma unroll
for(int m = 0; m < p_NqCoarse; ++m)
r_q[j][i][m] += s_RT[k][m] * tmp;
}
}

for(int k = 0; k < p_NqCoarse; ++k) {

#pragma unroll
for(int j = 0; j < p_NqFine; ++j)
#pragma unroll
for(int i = 0; i < p_NqFine; ++i)
s_q[i][j] = r_q[j][i][k];


for(int j = 0; j < p_NqCoarse; ++j){
for(int i = 0; i < p_NqFine; ++i){
dfloat res = 0;

#pragma unroll
for(int m = 0; m < p_NqFine; ++m)
res += s_R[j][m] * s_q[i][m];

s_Pq[j][i] = res;
}
}


for(int j = 0; j < p_NqCoarse; ++j)
for(int i = 0; i < p_NqCoarse; ++i) {
dfloat res = 0;

#pragma unroll
for(int m = 0; m < p_NqFine; ++m)
res += s_R[i][m] * s_Pq[j][m];

const int id = i + j * p_NqCoarse + k * p_NqCoarse * p_NqCoarse + e * p_NpCoarse;
qc[id] = res;
}
}
}
}
111 changes: 111 additions & 0 deletions okl/elliptic/ellipticPreconProlongateHex3D.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/*

The MIT License (MIT)

Copyright (c) 2017 Tim Warburton, Noel Chalmers, Jesse Chan, Ali Karakus

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

*/

extern "C" void ellipticPreconProlongateHex3D(const dlong& Nelements,
const dfloat* __restrict__ R,
const dfloat* __restrict__ qc,
dfloat* __restrict__ qN)
{
dfloat r_q[p_NqCoarse][p_NqFine][p_NqFine];

dfloat s_q[p_NqCoarse][p_NqCoarse];
dfloat s_Pq[p_NqFine][p_NqCoarse];

dfloat s_R[p_NqCoarse][p_NqFine];
for(int j = 0; j < p_NqCoarse; ++j){
for(int i = 0; i < p_NqFine; ++i) {
int t = i + j * p_NqFine;
const dfloat r = R[t];
s_R[j][i] = r;
}
}
for(dlong e = 0; e < Nelements; ++e) {


for(int j = 0; j < p_NqCoarse; ++j)
for(int i = 0; i < p_NqFine; ++i) {
const int t = i + j * p_NqFine;
if(t < p_NqCoarse * p_NqCoarse) {
#pragma unroll
for(int k = 0; k < p_NqFine; ++k)
r_q[j][i][k] = 0;

for(int k = 0; k < p_NqCoarse; ++k) {
const int id = t + k * p_NqCoarse * p_NqCoarse + e * p_NpCoarse;
const dfloat tmp = qc[id];

#pragma unroll
for(int m = 0; m < p_NqFine; ++m)
r_q[j][i][m] += s_R[k][m] * tmp;
}
}
}

for(int k = 0; k < p_NqFine; ++k) {

for(int j = 0; j < p_NqCoarse; ++j)
for(int i = 0; i < p_NqFine; ++i) {
const int t = i + j * p_NqFine;
if(t < p_NqCoarse * p_NqCoarse) {
const int ti = t % p_NqCoarse;
const int tj = t / p_NqCoarse;

s_q[tj][ti] = r_q[j][i][k];
}
}

for(int j = 0; j < p_NqCoarse; ++j)
for(int i = 0; i < p_NqFine; ++i) {
const int t = i + j * p_NqFine;

if(t < p_NqCoarse * p_NqFine) {
const int ti = t % p_NqCoarse;
const int tj = t / p_NqCoarse;

dfloat res = 0;

#pragma unroll
for(int m = 0; m < p_NqCoarse; ++m)
res += s_R[m][tj] * s_q[m][ti];

s_Pq[tj][ti] = res;
}
}

for(int j = 0; j < p_NqFine; ++j)
for(int i = 0; i < p_NqFine; ++i) {
dfloat res = 0;

#pragma unroll
for(int m = 0; m < p_NqCoarse; ++m)
res += s_R[m][i] * s_Pq[j][m];

const int id = i + j * p_NqFine + k * p_NqFine * p_NqFine + e * p_NpFine;
qN[id] += res;
}
}
}
}
23 changes: 17 additions & 6 deletions src/elliptic/ellipticBuildMultigridLevel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -284,13 +284,24 @@ elliptic_t* ellipticBuildMultigridLevel(elliptic_t* baseElliptic, int Nc, int Nf
coarsenProlongateKernelInfo["defines/" "p_NpFine"] = NpFine;
coarsenProlongateKernelInfo["defines/" "p_NpCoarse"] = NpCoarse;

filename = oklpath + "ellipticPreconCoarsen" + suffix + ".okl";
kernelName = "ellipticPreconCoarsen" + suffix;
elliptic->precon->coarsenKernel = platform->device.buildKernel(filename,kernelName,coarsenProlongateKernelInfo);
if(serial){
filename = oklpath + "ellipticPreconCoarsen" + suffix + ".c";
kernelName = "ellipticPreconCoarsen" + suffix;
occa::properties coarsenProlongateKernelInfoNoOKL = coarsenProlongateKernelInfo;
coarsenProlongateKernelInfoNoOKL["okl/enabled"] = false;
elliptic->precon->coarsenKernel = platform->device.buildKernel(filename,kernelName,coarsenProlongateKernelInfoNoOKL);
filename = oklpath + "ellipticPreconProlongate" + suffix + ".c";
kernelName = "ellipticPreconProlongate" + suffix;
elliptic->precon->prolongateKernel = platform->device.buildKernel(filename,kernelName,coarsenProlongateKernelInfoNoOKL);
} else {
filename = oklpath + "ellipticPreconCoarsen" + suffix + ".okl";
kernelName = "ellipticPreconCoarsen" + suffix;
elliptic->precon->coarsenKernel = platform->device.buildKernel(filename,kernelName,coarsenProlongateKernelInfo);
filename = oklpath + "ellipticPreconProlongate" + suffix + ".okl";
kernelName = "ellipticPreconProlongate" + suffix;
elliptic->precon->prolongateKernel = platform->device.buildKernel(filename,kernelName,coarsenProlongateKernelInfo);
}

filename = oklpath + "ellipticPreconProlongate" + suffix + ".okl";
kernelName = "ellipticPreconProlongate" + suffix;
elliptic->precon->prolongateKernel = platform->device.buildKernel(filename,kernelName,coarsenProlongateKernelInfo);
}

if(elliptic->elementType == HEXAHEDRA) {
Expand Down
28 changes: 20 additions & 8 deletions src/elliptic/ellipticSolveSetup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,14 +430,26 @@ void ellipticSolveSetup(elliptic_t* elliptic, occa::properties kernelInfo)
}

if(!elliptic->blockSolver) {
filename = oklpath + "ellipticPreconCoarsen" + suffix + ".okl";
kernelName = "ellipticPreconCoarsen" + suffix;
elliptic->precon->coarsenKernel = platform->device.buildKernel(filename,kernelName,kernelInfo);

filename = oklpath + "ellipticPreconProlongate" + suffix + ".okl";
kernelName = "ellipticPreconProlongate" + suffix;
elliptic->precon->prolongateKernel =
platform->device.buildKernel(filename,kernelName,kernelInfo);
if(serial){
filename = oklpath + "ellipticPreconCoarsen" + suffix + ".c";
kernelName = "ellipticPreconCoarsen" + suffix;
occa::properties serialPreconKernelInfo = kernelInfo;
serialPreconKernelInfo["okl/enabled"] = false;
elliptic->precon->coarsenKernel = platform->device.buildKernel(filename,kernelName,serialPreconKernelInfo);
filename = oklpath + "ellipticPreconProlongate" + suffix + ".c";
kernelName = "ellipticPreconProlongate" + suffix;
elliptic->precon->prolongateKernel =
platform->device.buildKernel(filename,kernelName,serialPreconKernelInfo);
} else {
filename = oklpath + "ellipticPreconCoarsen" + suffix + ".okl";
kernelName = "ellipticPreconCoarsen" + suffix;
elliptic->precon->coarsenKernel = platform->device.buildKernel(filename,kernelName,kernelInfo);
filename = oklpath + "ellipticPreconProlongate" + suffix + ".okl";
kernelName = "ellipticPreconProlongate" + suffix;
elliptic->precon->prolongateKernel =
platform->device.buildKernel(filename,kernelName,kernelInfo);
}

}
}

Expand Down