#2892: SpacetimeX: GPU error in PunctureTracker::PunctureContainer::interpolate
Reporter: Miren Radia
Status: open
Milestone:
Version: development version
Type: bug
Priority: major
Component: CarpetX
Comment (by Liwei Ji):
Could you set `CarpetX::poison_undefined_values=no` for now? I will fix it later
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2892/spacetimex-gpu-er…
#2902: CarpetX: interpolation with z-reflection symmetry only works for Psi4
Reporter: Miren Radia
Status: open
Milestone:
Version: development version
Type: bug
Priority: major
Component: CarpetX
Changes (by Roland Haas):
status: open (was submitted)
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2902/carpetx-interpola…
#2902: CarpetX: interpolation with z-reflection symmetry only works for Psi4
Reporter: Miren Radia
Status: submitted
Milestone:
Version: development version
Type: bug
Priority: major
Component: CarpetX
Currently the end of `CarpetX::interpolate` looks like this:
```c++
// Apply symmetries to interpolated values
assert(!reflection_x);
assert(!reflection_y);
assert(!reflection_upper_x);
assert(!reflection_upper_y);
assert(!reflection_upper_z);
if (reflection_z) {
// The code below is only valid for Psi4
assert(nvars == 2);
assert(varinds[0] == CCTK_VarIndex("Weyl::Psi4re"));
assert(varinds[1] == CCTK_VarIndex("Weyl::Psi4im"));
// l^a = et^a + er^a
// n^a = et^a - er^a
// m^a = etheta^a + i ephi^a
// Psi4 = C_abcd m-bar^b n^b m-bar^c n^d
for (int n = 0; n < npoints; ++n) {
if (symmetry_reflected_z[n]) {
resultptrs[0][n] = -resultptrs[0][n];
resultptrs[1][n] = +resultptrs[1][n];
}
}
}
```
\([link to source](https://github.com/EinsteinToolkit/CarpetX/blob/2cba1e969badbe8e6a1…)
These assertions are failed when you have z-reflection symmetry and try to interpolate different variables.
Note that has already been reported in [an issue in the CarpetX GitHub repo](https://github.com/EinsteinToolkit/CarpetX/issues/146) but I thought I’d open a ticket here given the lack of activity there.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2902/carpetx-interpola…
#2892: SpacetimeX: GPU error in PunctureTracker::PunctureContainer::interpolate
Reporter: Miren Radia
Status: open
Milestone:
Version: development version
Type: bug
Priority: major
Component: CarpetX
Comment (by Miren Radia):
Here's the parameter file I mentioned in the previous comment.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2892/spacetimex-gpu-er…
#2892: SpacetimeX: GPU error in PunctureTracker::PunctureContainer::interpolate
Reporter: Miren Radia
Status: open
Milestone:
Version: development version
Type: bug
Priority: major
Component: CarpetX
Comment (by Miren Radia):
Liwei, I’m not sure if your [puncture tracker PR](https://github.com/EinsteinToolkit/SpacetimeX/pull/59) has fully resolved the issues with poison for me. I cherry-picked the commits onto your [subcycling development branch](https://github.com/lwJi/SpacetimeX/tree/development) and received the following error when I tried to run with the `qc0-SC.par` parameter file I’ll try to attach after I’ve posted this comment.
```
INFO (PunctureTracker): Puncture #0 is at (1.16864,0,0)
INFO (PunctureTracker): Puncture #1 is at (-1.16864,0,0)
INFO (PunctureTracker): Shift at puncture #0 is at (0,0,0)
INFO (PunctureTracker): Shift at puncture #1 is at (0,0,0)
INFO (CarpetX): ScheduleTraverseGH iteration 1 CCTK_POSTSTEP
INFO (CarpetX): CallFunction iteration 1 CCTK_POSTSTEP: BoxInBox::EstimateError
INFO (CarpetX): ScheduleTraverseGH iteration 1 CCTK_CHECKPOINT
INFO (CarpetX): CallFunction iteration 1 CCTK_CHECKPOINT: CarpetX::CarpetX_Checkpoint
INFO (CarpetX): CallFunction iteration 1 CCTK_CHECKPOINT: TimerReport::zzz_TimerReport_Checkpoint
INFO (CarpetX): ScheduleTraverseGH iteration 1 CCTK_ANALYSIS
INFO (CarpetX): CallFunction iteration 1 CCTK_ANALYSIS: TimerReport::zzz_TimerReport_Output
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_AnalysisGroup: Z4cowGPU::Z4cowGPU_Constraints
INFO (CarpetX): OutputGH: iteration 1, time 0.416667, run time 6 s
INFO (CarpetX): OutputGH done.
INFO (CarpetX): ScheduleTraverseGH iteration 1 CCTK_PRESTEP
INFO (CarpetX): ScheduleTraverseGH iteration 1 CCTK_EVOL
INFO (CarpetX): CallFunction iteration 1 CCTK_EVOL: ODESolvers::ODESolvers_Solve_Subcycling
INFO (ODESolvers): Integrator is RK4
INFO (ODESolvers): Integrating 22 variables
INFO (CarpetX): SyncGroupsProlongateOnly Z4COWGPU::W_OLD, Z4COWGPU::GAMMA_TILDE_OLD, Z4COWGPU::K_HAT_OLD, Z4COWGPU::A_TILDE_OLD, Z4COWGPU::GAM_TILDE_OLD, Z4COWGPU::THETA_OLD, Z4COWGPU::ALPHAG_OLD, Z4COWGPU::BETAG_OLD
INFO (CarpetX): SyncGroupsProlongateOnly Z4COWGPU::W_K1, Z4COWGPU::GAMMA_TILDE_K1, Z4COWGPU::K_HAT_K1, Z4COWGPU::A_TILDE_K1, Z4COWGPU::GAM_TILDE_K1, Z4COWGPU::THETA_K1, Z4COWGPU::ALPHAG_K1, Z4COWGPU::BETAG_K1
INFO (CarpetX): SyncGroupsProlongateOnly Z4COWGPU::W_K2, Z4COWGPU::GAMMA_TILDE_K2, Z4COWGPU::K_HAT_K2, Z4COWGPU::A_TILDE_K2, Z4COWGPU::GAM_TILDE_K2, Z4COWGPU::THETA_K2, Z4COWGPU::ALPHAG_K2, Z4COWGPU::BETAG_K2
INFO (CarpetX): SyncGroupsProlongateOnly Z4COWGPU::W_K3, Z4COWGPU::GAMMA_TILDE_K3, Z4COWGPU::K_HAT_K3, Z4COWGPU::A_TILDE_K3, Z4COWGPU::GAM_TILDE_K3, Z4COWGPU::THETA_K3, Z4COWGPU::ALPHAG_K3, Z4COWGPU::BETAG_K3
INFO (CarpetX): SyncGroupsProlongateOnly Z4COWGPU::W_K4, Z4COWGPU::GAMMA_TILDE_K4, Z4COWGPU::K_HAT_K4, Z4COWGPU::A_TILDE_K4, Z4COWGPU::GAM_TILDE_K4, Z4COWGPU::THETA_K4, Z4COWGPU::ALPHAG_K4, Z4COWGPU::BETAG_K4
INFO (ODESolvers): Set interior old state at t=0, to be prolongated later
INFO (ODESolvers): Fill refinement boundary ghost zones using Ys for stage #1 at t=0
INFO (ODESolvers): Calculating RHS #1 at t=0
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_RHSGroup: Z4cowGPU::Z4cowGPU_RHS
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_RHSGroup: Z4cowGPU::Z4cowGPU_Apply_NewRadX_BC
INFO (ODESolvers): Set interior Ks for stage #1 at t=0, to be prolongated later
INFO (ODESolvers): Calculated new state #1 at t=0
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_PostStepGroup: Z4cowGPU::Z4cowGPU_Sync
INFO (CarpetX): SyncGroups Z4COWGPU::W, Z4COWGPU::GAMMA_TILDE, Z4COWGPU::K_HAT, Z4COWGPU::A_TILDE, Z4COWGPU::GAM_TILDE, Z4COWGPU::THETA, Z4COWGPU::ALPHAG, Z4COWGPU::BETAG
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_PostStepGroup: Z4cowGPU::Z4cowGPU_Enforce
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_PostStepGroup: Z4cowGPU::Z4cowGPU_ADM
INFO (CarpetX): CallFunction iteration 1 TmunuBaseX_SetTmunuVars: TmunuBaseX::TmunuBaseX_ZeroTmunu
INFO (ODESolvers): Fill refinement boundary ghost zones using Ys for stage #2 at t=0.104167
INFO (ODESolvers): Calculating RHS #2 at t=0.104167
INFO (CarpetX): CallFunction iteration 1 Z4cowGPU_RHSGroup: Z4cowGPU::Z4cowGPU_RHS
ERROR from host tu-c0r0n72 process 0
in thorn CarpetX, file /mnt/lustre/tursafs1/home/dp415/dp415/dc-radi1/ETK/Cactus-CarpetX-subcycling-spack/arrangements/CarpetX/CarpetX/src/valid.cxx:552:
-> CallFunction iteration 1 CCTK_EVOL: PunctureTracker::PunctureTracker_Track checking output: Grid array "PUNCTURETRACKER::pt_loc_t[0]" has 1 nans on time level 0; expected valid
The interior is valid because: CallFunction iteration 1 CCTK_EVOL: PunctureTracker::PunctureTracker_Track: Mark output variables as valid.
The outer boundary is valid because: CallFunction iteration 1 CCTK_EVOL: PunctureTracker::PunctureTracker_Track: Mark output variables as valid.
The ghost zones are valid because: CallFunction iteration 1 CCTK_EVOL: PunctureTracker::PunctureTracker_Track: Mark output variables as valid.
```
I guess it could be related to subcycling? Do you have any idea?
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2892/spacetimex-gpu-er…
#2892: SpacetimeX: GPU error in PunctureTracker::PunctureContainer::interpolate
Reporter: Miren Radia
Status: open
Milestone:
Version: development version
Type: bug
Priority: major
Component: CarpetX
Comment (by Liwei Ji):
Thanks @{61d89c2368926d0068827aa3} , for figuring the issue out
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2892/spacetimex-gpu-er…
#2901: ExternalLibraries-ADIOS2: detect.sh adds nonexistent MPI libraries if ADIOS2_ENABLE_SST == yes when using external ADIOS2
Reporter: Miren Radia
Status: open
Milestone:
Version: development version
Type: bug
Priority: minor
Component: EinsteinToolkit thorn
Comment (by Miren Radia):
My hacky fix was this change:
```diff
diff --git a/src/detect.sh b/src/detect.sh
index 7fce31d..087c260 100755
--- a/src/detect.sh
+++ b/src/detect.sh
@@ -45,6 +45,7 @@ ADIOS2_REQ_LIBS="adios2_cxx11 adios2_c adios2_core"
if [ "$(echo ${ADIOS2_ENABLE_FORTRAN} | tr '[:upper:]' '[:lower:]')" = 'yes' ]; then
ADIOS2_REQ_LIBS="adios2_fortran $ADIOS2_REQ_LIBS"
fi
+ADIOS2_MPI_LIBS="$ADIOS2_REQ_LIBS"
if [ "$(echo ${ADIOS2_ENABLE_SST} | tr '[:upper:]' '[:lower:]')" = 'yes' ] ; then
# core depends on adios2_evpath
ADIOS2_REQ_LIBS="$ADIOS2_REQ_LIBS adios2_evpath adios2_atl adios2_enet adios2_ffs adios2_dill"
@@ -82,7 +83,7 @@ if [ -z "${ADIOS2_BUILD}" -a -z "${ADIOS2_INC_DIRS}" -a -z "${ADIOS2_LIB_DIRS}"
fi
if [ $test_mpi -eq 0 ]; then
mpi_libs="" # need to prepend MPI libs
- for lib in $ADIOS2_REQ_LIBS ; do
+ for lib in $ADIOS2_MPI_LIBS ; do
mpi_libs="$mpi_libs ${lib}_mpi"
done
ADIOS2_LIBS="$mpi_libs $ADIOS2_LIBS"
```
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2901/externallibraries…