Added tst file to run RMCRT:DataOnion (2L) with various patch configurations
on coarse and fine levels. This is used to perform cpu vs gpu comparisons
over a wide range of patch layouts.
327 lines of code changed in 2 files:
Removed (using namespace *) from include files.
26 lines of code changed in 57 files:
removed "using namespace *"
0 lines of code changed in 2 files:
removed "using namespace *" from include files.
13 lines of code changed in 19 files:
Simplify how the density is computed from
rho*f. This will cause some roundoff errors
due to the change in algebraic operations.
3 lines of code changed in 1 file:
Propagate the solvability constraint through Wasatch.
This is controlled by the user: Simply add <EnforceSolvability/> to the <Pressure> xml block.
Start deprecating the reference pressure setup and replace with
the new approach.
Loosen up the tolerance on a few tests to help Hypre converge.
This commit will fail a few RT tests with machine diffs.
56 lines of code changed in 4 files:
Reapply revision 53556.
1 lines of code changed in 1 file:
Revert c++-11 namespace changes.
1643 lines of code changed in 389 files:
Taking out the Collide test for now. It is failing oddly, like maybe I'm
creating duplicate particleIDs?
1 lines of code changed in 1 file:
Remove backup file.
0 lines of code changed in 1 file:
Explicit namespace usage as part of the transition to c++-11.
2566 lines of code changed in 250 files:
Explicit namespace specification as we transition to c++-11.
515 lines of code changed in 32 files:
remove a couple of cout statements
0 lines of code changed in 1 file:
allow the solvability constraint to work with multistage integration.
The issue stems from doing multiple reductions on the same
variable - something that Uintah doesn't allow.
Therefore, one needs to use a different varlabel everytime
a reduction is required, on a given variable, within the same timestep.
55 lines of code changed in 1 file:
Forgot to delete varlabel.
Remove check for periodicity from the task that enforces solvability.
The user/developer must determine when to call that task.
4 lines of code changed in 1 file:
Add a top-level task to the Solver base class that allows users/developers to set a reference value
for the Poisson equation.
The function is super simple to use given a solver instance:
solver.scheduleSetReferenceValue( level, sched, matls, xLabel, refCell, refValue)
xLabel is the varlabel of the solution vector (e.g. pressure)
refCell is an IntVector designating the reference cell and defaults to [0,0,0]
refValue is a double designating the reference value and defaults to 0.0
This task MUST be called AFTER scheduleSolve
102 lines of code changed in 1 file:
remove and un-necessary const_cast from the HypreSolver
2 lines of code changed in 1 file:
Remove the finalParticleUpdate call for the scalar diffusion model, as it is all
currently empty.
43 lines of code changed in 2 files:
Use code reuse to reduce duplicate code where possible.
336 lines of code changed in 12 files:
Replace use of zeroth_matl with Todd's d_one_matl, which is effectively the
same thing. This hopefully fixes the memory leak identified by the RT.
3 lines of code changed in 1 file:
Add a top-level task to the linear solver that enforces the solvability condition for the Poisson equation in periodic problems.
This task can be called by ALL components given an instance of a solver.
It will only execute on periodic problems (all 3 dimensions).
Simply use: solver.scheduleEnforceSolvability<rhsType >(level, sched, matls, rhs_label)
where rhsType is the Uintah data type of the Poisson rhs: e.g. CCVariable<double> etc...
This task MUST be called before the scheduleSolve task.
116 lines of code changed in 1 file:
Remove the commented out <omp.h> since we are not using any omp calls.
0 lines of code changed in 1 file:
Added --with-pokitt=DIR for James Sutherland.
126 lines of code changed in 3 files:
Added #ifs around code that doesn't compile on titan.
That machine is using cuda 5.5.
7 lines of code changed in 1 file:
Talked to John and omp.h (OpenMP) is not needed in this file. Removing it to fix Mac build.
1 lines of code changed in 1 file:
Added the tasks needed for scalar diffusion on a single level. Still need to
add the corrections for the CFI.
451 lines of code changed in 5 files:
Add a short AMR test to the nightly RT.
2 lines of code changed in 1 file:
Add concentration as an option for geometry piece attributes.
1 lines of code changed in 1 file:
Fix the diffusion models, at least the ones needed for nano_pillar2_2d.ups, so
that we can run that problem on multiple patches and on multiple processors.
Now doing this in the trunk version.
45 lines of code changed in 6 files:
For once per proc task, turn off all but one thread.
59 lines of code changed in 1 file:
Delete the VarLabels associated with the reduction on the refinement flags.
6 lines of code changed in 1 file:
clip the density when using the (closed form) mixing model
16 lines of code changed in 2 files:
Ray.cc: updateSumI_ML()
- consistent debugging output with GPU code
RayGPU.cuh + RayGPUKernel.cu
- Pass regionLo and regionHi into the kernel instead of using levelP.
These quantities vary on a per patch basis. levelP is copied to global memory
and regionLo/Hi should be in shared memory.
55 lines of code changed in 3 files:
Fixed boundary condition bug, when using inert stream.
1 lines of code changed in 1 file:
Remove duplicate addition of scalar diffusion model in the outputProblemSpec.
The removed one was not inside of a conditional.
0 lines of code changed in 1 file:
Require MPMRefineCell for d_one_matl (matl 0) only.
1 lines of code changed in 1 file:
add a field that tags the points where the density-mixture fraction nonlinear solver failed to converge.
This will help us visualize where these unconverged points occur.
34 lines of code changed in 6 files:
Minor tidying.
9 lines of code changed in 3 files:
Perform a reduction on the refine flags so that a rectangular region for refinement can
be created, thereby preventing inside corners, which the infrastructure will not tolerate
for NC variables.
242 lines of code changed in 5 files:
C++11 cleanups.
59 lines of code changed in 11 files:
Fix, I hope, the deletion of the scalar diffusion model.
2 lines of code changed in 1 file:
Do not throw exception when fine-level halo used in GPU::RMCRT_DO. This is all working properly now.
0 lines of code changed in 1 file:
Deleted GPU.py. Those a managed by each component.
runSusTests.py: reset SCI_DEBUG on each test.
startTester: removed GPU.py tests from albion and cyrus.
8 lines of code changed in 3 files:
Get rid of operator new calls on device. Use compile time constant to size arrays for now.
4 lines of code changed in 1 file:
Put deletion of scalar diffusion model inside of a conditional.
3 lines of code changed in 1 file:
If a test is using a GPU set the environmental flag
SCI_DEBUG SingleDevice:+
and for it to run on 1 gpu.
3 lines of code changed in 1 file:
Throw an exception if the user is trying to use multiple GPUs. The simulation chugs along
as if it's working when really the some of the GPU kernels are being skipped. This was
observed on a machine with two different GPUs and may not hold when the GPUs are the same make/model.
10 lines of code changed in 1 file:
Added flags for turning on/off scalar diffusion.
19 lines of code changed in 2 files:
- fixed compiler warnings.
- added patch.print() call
- removed a weed
2 lines of code changed in 1 file:
added patchParams:print(). Useful for debugging
7 lines of code changed in 1 file:
Adding models for the ARL project.
4432 lines of code changed in 27 files:
spring cleaning: rip out ALL STATE_N specification in all Wasatch input files.
There should NO need to use STATE_N. One should use STATE_DYNAMIC
instead.
3 lines of code changed in 1 file:
removed test. Input file no longer exists
5 lines of code changed in 1 file:
minor cleanup; use min/max rather than cond.
29 lines of code changed in 1 file:
Removed RMCRT_test_1L from the GPU python script. That ups is tested in Examples.py.
We should consider removing the GPU.py script. I'm not sure the tests are still relevant.
2 lines of code changed in 1 file:
scheduleInitialize()
added requires for radiationVolq.
8 lines of code changed in 1 file:
Fix minor bug in momentum rhs dependencies - require density only when body forces are needed
5 lines of code changed in 1 file:
added gpu workaround script which modifies an input file so it will hobble through the gpu RT tests
calc_frequency -> 1
halo -> [0,0,0]
Examples.py
- Call the gpuWorkAround script on gpu tests.
6 lines of code changed in 1 file:
RMCRTCommon:
updateSumI() mimic debugging output for gpu code for direct comparison with cpu results.
Variable name change face->dir, consistent with cpu code.
Ray.cc:
update TO DO list
sched_rayTrace() and sched_rayTrace_dataOnion()
- throw an exception if calc_frequency > 1. This is another big infrastructure issue.
RayGPUKernel.cu
update TO DO list
RayGPU.cc
rayTraceGPU()
- In doCarryForward block added transferFrom() calls. These will be used once
the GPUDW transferFrom issue is fixed.
164 lines of code changed in 4 files:
Now running GPU nightly regression testing on cyrus.mech
27 lines of code changed in 2 files:
Add check for C++-11 compiler.
105 lines of code changed in 1 file:
Fixes for c++-11 with g++ 5.1.
0 lines of code changed in 2 files:
Fixed thread saftey issues in Yamamoto coal devolitalization model.
5 lines of code changed in 2 files:
Fixes for c++-11 with g++ 5.1.
0 lines of code changed in 2 files:
Initialize d_halo to -9,-9,-9
problemSetup:GPU bulletproofing
- only check for halo violation if algorithm == dataOnion
Minor debugging tweaks.
19 lines of code changed in 2 files:
Change for c++-11.
0 lines of code changed in 2 files:
Moved the code that increases the cuda prinf buffer upstream to problemSetup. You only
want to do this once.
19 lines of code changed in 2 files:
Added checkBounds() instead of using cuda_testdefs: CHECK_INSIDE. The output now
includes the variable pointer. If you add
new_dw->print();
inside of the kernel you can cross reference the pointer with the variable.
0 lines of code changed in 2 files:
Fixed thread saftey issues in RichardsFletcher Devolitalization coal model.
107 lines of code changed in 3 files:
Changes required to use c++-11.
217 lines of code changed in 46 files:
Added a missing initialize for radVolQ. Now rmcrt can run with caol problems.
6 lines of code changed in 2 files:
Misc. cleanup, including removal of a few zeroing operations that were unnecessary.
77 lines of code changed in 5 files:
delete abskgLabel if using FLOATS. Thanks Derek.
3 lines of code changed in 1 file:
RayGPU.cuh
- added operator > and operator < for GPUIntVector.
GPUVariableSanityCK()
- only compile if assertion level > 0
- if variable bounds are exceeded then print a warning and escape.
rayTraceDataOnionKernel()
- turn off raytracing. Currently crashing on 3rd timestep for some memory related issue.
- turn off the delete(GPUVariable) calls. . cuda-memcheck is throwing an error on them.
- added GPUVariableSanityCK() calls.
96 lines of code changed in 2 files:
removed print statement that clutters the mind.
0 lines of code changed in 1 file:
added const getLowIndex() and const getHighIndex()
18 lines of code changed in 1 file:
add $MPIRUN to the path
2 lines of code changed in 1 file:
Removed global variable in property calculator that is no longer used.
0 lines of code changed in 1 file:
Fixed thread safety issues in coal models, and in hottel-sarofim radiation properties.
This commits also removes ambiguous calls to isnan and isinf which cause compile errors in c++11.
53 lines of code changed in 14 files:
minor fix to get Wasatch to build with c++11
1 lines of code changed in 1 file:
Fix thread safety issues.
22 lines of code changed in 7 files:
Major Commit. Simplify the user specification of nametags. From now on, the state of a variable is optional. When a state is NOT specified, we default to STATE_NONE.
Before this commit, STATE_NONE occurred in 88% of all expressions (~ 1700 occurrences) in all of the Wasatch input files.
6 lines of code changed in 1 file:
gpu_stats formatting and now outputting the nCells. It's much easier to follow.
22 lines of code changed in 1 file:
Wrapping up reference pressure implementation.
The user now can remove dimensions from the pressure solve by specifying
the dimensions in the input file. This allows for 2D and 1D, periodic,
variable density problems to work.
153 lines of code changed in 2 files:
Use a SMALLNUM when worried about divide by zero problems (Thanks,
Todd/Dav, for pointing this out.)
Get the reference pressure working for two-d problems.
127 lines of code changed in 3 files:
Comments.
For SampleTask, using the cleaner interface for computing variables.
6 lines of code changed in 2 files:
postH2DCopies()
- simplified logic for deciding if a variable is a "levelItem."
- Moved H2dRequiresLock up stream, needed to avoid issues when multiple threads
query existsLevelDB() simultaneously. Kudos to Dav for helping on this!
preallocateDeviceMemory() & postD2HCopies()
- gpu_stats: Added the number cells in the x,y,z dirs.
137 lines of code changed in 1 file:
rayTraceKernel:
- now using getLevel() instead of get() This avoid getRegion() which we know is slow for large patch counts.
- Passing level index into the kernel
added operator != for GPUIntVectors
Added GPUVariableSanityCK()
- Does variable exist and have the proper extents and doesn't contain INFs or NANs
** This commmit will break the GPU:RMCRT 1L tests. It is the right thing to do but there are issues in the unified scheduler
that need to be sorted out. **
107 lines of code changed in 3 files:
added environmental variable MPIRUN for albion.sci
3 lines of code changed in 1 file:
Include GPU tests in the Nightly RT.
4 lines of code changed in 1 file:
Use albion.sci for GPU:RMCRT tests
7 lines of code changed in 2 files:
fix bug in my previous commit that broke the buildbot
3 lines of code changed in 1 file:
allocateAndPut()
- added comments
4 lines of code changed in 1 file:
propagate information about the new gaussian model for alpha
into the 1D and 2D Varden MMS'.
Cleanup a few things in the 2D MMS for better readability
and code reusability.
34 lines of code changed in 4 files:
Added getLowIndex() and getHighIndex()
22 lines of code changed in 3 files:
repair bug when parsing tabulated properties that prevented restarts from working properly
1 lines of code changed in 1 file:
Add a regression test for a 2d laminar jet using the previously committed smooth impulse model for alpha.
2 lines of code changed in 1 file:
Add a Gaussian type model for the variable density blending coefficient alpha.
This Gaussian model will produce a smooth version of the impulse model.
The smoother impulse can be shown to help suppress wave intermittency
that was observed in some varden jet simulations.
16 lines of code changed in 4 files:
Comment out varLabelNames section. Something isn't right and it isn't needed right now.
3 lines of code changed in 1 file:
Now outputting MPI rank and threadID in taskdbg statements. You can now
grep <rank>.<ID> so watch what each thread is doing.
The getRankThread() function should be moved upstream so others can use it.
10 lines of code changed in 1 file:
add a (non reacting) 2d MMS varden test using (1) single velocity predictor, (2) tabulated properties, (3) and a reference pressure.
This holds up all the way without any convergence issues with the density-mixture fraction solver
2 lines of code changed in 1 file:
Additional tortuous logic to:
1. Allow for more than two levels.
2. Keep fine patches with particles from being deleted, even if they
don't have refine flags set on them (otherwise the particles on them
disappear as well).
3. Refine particles as they move into finer levels, so that particle size
doesn't exceed cell size.
64 lines of code changed in 2 files:
display()
- moved patchset output to the end of the line.
- identify tasks that are GPU tasks.
9 lines of code changed in 1 file:
(1) fix bug in the reference-pressure treatment that was due to a typo
(2) convert all 2D variable density tests to use 1 cell in the irrelevant direction.
(3) update said tests to use the 2D laplacian instead of the 3D version
This will break the RT. Will also lead to noticeable speedups.
3 lines of code changed in 1 file:
Once and for all, fix the reference pressure dilemma in Wasatch.
86 lines of code changed in 1 file:
Initialize the cudaStream to NULL.
<< operator:
- if a task is using the cuda stream then output the stream address.
7 lines of code changed in 1 file:
if hypre solver is SMG, then throw exception when periodic resolutions are not a power-of-two. Otherwise, throw a warning.
11 lines of code changed in 1 file:
Prevent the HypreSolver interface from throwing an exception when using one cell in any given periodic direction. This will Wasatch and other components to use one cell only in directions that are not being solved for. Also, this will significantly reduce the logic associated with setting reference pressures.
3 lines of code changed in 1 file:
Removed heat equation. It doesn't run and is a copy & paste of Poisson1 which does run
0 lines of code changed in 4 files:
Cleanup TaskDBG output in threaded schedulers, reporting in ThreadedMPI and Unified schedulers has not been consistent. Also restrict thread-specific debugstream output.
20 lines of code changed in 4 files:
Prepend all gpustats output with mpirank.threadID information. For example:
0.0 Post H2D copy of REQUIRES ( abskg), L-1, patch: 1, size (bytes) = 157216 from 0x168eb90 to 0x1304a40000, using stream 0x7f44d80008c0
0.1 Post H2D copy of REQUIRES ( abskg), L-1, patch: 2, size (bytes) = 157216 from 0x16eeb10 to 0x1304a66800, using stream 0x1bc5880
Useful when debugging thread issues.
44 lines of code changed in 2 files:
postH2DCopies()
- output cuda stream pointer in DebugStream gpuStats
- removed repetitive calls to dw->getGPUDW()
30 lines of code changed in 1 file: