Openmp merge - #237
Open
cjllorente827 wants to merge 236 commits into
Open
Conversation
--HG-- branch : week-of-code
--HG-- branch : week-of-code
--HG-- branch : week-of-code
- SubgridSizeAutoAdjust to TRUE (up to 30% increases in speed reported). - Optimized CommunicationTransferParticles ON. Was bracketed by the OPTIMIZED_CTP define before. --HG-- branch : week-of-code
Placing the HD cooling curve fit ceiling lower at T ~ 1e5K to avoid overflows (inf) in the tables at T > 1e6K. --HG-- branch : week-of-code
--HG-- branch : week-of-code
changed to the default behavior. --HG-- branch : week-of-code
--HG-- branch : week-of-code
--HG-- branch : week-of-code
--HG-- branch : week-of-code
FLOAT. Maybe this was causing some "misplaced" photons when ray merging is used? --HG-- branch : week-of-code
tree built for ray merging. Not working. --HG-- branch : week-of-code
tree built for ray merging. Not working. --HG-- branch : week-of-code
--HG-- branch : litemp
--HG-- branch : litemp
corruption. No idea why this happens, but it fixed the problem in the open-mp branch. --HG-- branch : litemp
conservative or positive reconstruction yet. --HG-- branch : litemp
--HG-- branch : litemp
--HG-- branch : litemp
Needed to change ijk (MAX_ANY_SINGLE_DIRECTION) to the maximum dimension in the grid. For some reason, it was causing memory corruption issues in the rate solver. --HG-- branch : litemp
--HG-- branch : litemp
--HG-- branch : litemp
…ores. --HG-- branch : litemp
--HG-- branch : litemp
Fortran didn't like multiple threads writing to the same file, e.g. write(4,*). Ifdef'ed them out if OpenMP is on. --HG-- branch : litemp
--HG-- branch : litemp
--HG-- branch : litemp
instead of MPI processes. Removed some minor memory leaks. --HG-- branch : litemp
--HG-- branch : litemp
Contributor
|
@cjllorente827 could you please (1) update the text of the PR to explain what you're doing with it, and (2) fix the code so it passes the tests? Thank you! Edit: looking at the error messages it seems that you have a compilation problem. It should be easy to fix. |
…utines - Add missing array reductions for StarsToMove and APNumberToMove in CommunicationCollectParticles.C and CommunicationTransferSubgridParticles.C. - Restrict parallel block in CommunicationTransferSubgridParticles.C to exclude active particle copy loop. - Remove nowait clauses from inner work-sharing loops nested inside sequential loops in Grid_CollectParticles.C, Grid_MoveAllParticles.C, and Grid_CommunicationSendParticles.C to ensure compliant work-sharing ordering.
…enmp branch - Revert "Particle will now spawn on highest subgrid that matches its position" - This reverts commit d27a9b2. - Revert "rmoved merge conflicts" - This reverts commit 48c06a7, reversing changes made to 277c0a8. - Revert "Bugfix for ActiveParticleFinalize function call" - This reverts commit 815bd81. - Revert "added the AGN particle files" - This reverts commit 277c0a8.
…atch, FindSubgrids pointer bug, and EvolveLevel loop nesting
…tic GridEnds array and restore thread_grid_loop logic
…ve multi-threaded scalability
…nsity field loops when NumberOfProcessors == 1
…hreadedMoveList inside the parallel block to make them thread-local
…d TransferSubgridActiveParticles thread-safe using shared counters and omp critical sections
…run execution, hybrid OpenMP+MPI configurations, and code threading structure
- Add MACH_OPENMP to Make.mach.ubuntu for OpenMP builds. - Include unistd.h and stdlib.h in uuid/gen_uuid.c for GCC 14+ compatibility. - Re-attach HeadPointer in SingleThread mode in Grid_TransportPhotonPackages.C to prevent segfaults and resulting IndexErrors in radiation transport answer tests.
- Fix END_GRID_TIMER and END_LOAD_TIMER macro argument definitions when USE_MPI is disabled. - Add non-MPI stub implementation for CommunicationBufferPurge and CommunicationBufferedSendCancel in CommunicationBufferedSend.C.
Remove duplicate calls to SetNumberOfPhotonPackages in RadiativeTransferMoveLocalPhotons.C and CommunicationTransferPhotons.C that were double-subtracting moved photon package counts, causing negative photon counts and resetting photon lists. Also fix UnigridTranspose non-MPI fallback in ReadParameterFile.C and #ifdef USE_MPI guard in StarParticleFindAll.C.
This is not necessary and now the install runs out of memory on a circleci large job.
Allocate PhotonTestSource arrays dynamically on the heap rather than on the stack in ReadPhotonSources.C and PhotonTestRestartInitialize.C to avoid exceeding Linux thread stack limits (MAX_SOURCES = 100000).
Use MyProcessorNumber instead of calling MPI_Comm_rank with undeclared mpi_rank when USE_MPI is disabled.
In Python 3 multiprocessing worker processes, options defined in the main block was not present in worker global namespace, causing NameError when referencing options.time_multiplier and options.clobber. Use getattr() with default fallbacks and define options = None at module level.
In Grid_PhotonTestInitializeGrid.C, when MultiSpecies > 1, lines 856-857 used outer loop index 'i' instead of cell linear offset 'n' when reading BaryonField arrays (HMNum, H2INum, H2IINum). This caused mu_data and energy fields to be calculated as NaN on multi-species test-suite builds, resulting in an interpolation error during RebuildHierarchy.
In Grid_InitializeRadiativeTransferFields.C, expand field initialization loops from 0 to GridDimension[dim]-1 to zero ghost zones in addition to active cells.
Update test-answers cache key to test-answers-v18 and gold-standard tag to gold-standard-v18 in .circleci/config.yml to establish the post-OpenMP refactor reference baseline for strict 1e-13 answer testing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
name: Pull request
about: Create a pull request to help us improve
title: ''
labels: ''
assignees: ''
Thank you so much for your PR! To help us review, fill out the form to the best of your ability. Please make use of the development guide at https://enzo.readthedocs.io/en/latest/developer_guide/ModificationIntro.html#how-to-develop-enzo
Pull request summary
Provide a general summary of your changes in the title above, for example "Fixes crash in FluxCorrection between AMR levels". Please avoid non-descriptive titles such as "Addresses issue #42."
If you are able to do so, please do not create the PR out of main, but out of a separate branch.
Describe your pull request
Please provide at least 1-2 sentences describing the pull request in detail. Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here. Github will autolink if prefixed with a hash, e.g. #42.
If your PR depends on another PR, please link to the PR here github autolinking syntax.
[ ] This is a major change or addition. Will require two reviewers.
PR Checklist
Note that some of these check boxes may not apply to all pull requests.
Thank you!
We understand that PRs can sometimes be overwhelming, especially as the
reviews start coming in. Please let us know if the reviews are unclear or the
recommended next step seems overly demanding, or if you would like help in
addressing a reviewer's comments. Lastly, please ping us if you've been waiting
too long to hear back on your PR.