-
Notifications
You must be signed in to change notification settings - Fork 121
Add rockets to website #982
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds GPU unified memory support and parameter configuration enhancements for rocket visualization functionality. The main purpose appears to be enabling unified memory management for GPU acceleration and expanding parameter flexibility for domain configuration.
Key changes include:
- Addition of GPU unified memory support for Frontier supercomputer configurations
- Extension of parameter dictionaries to support dynamic domain boundary parameters
- Update of test golden files with new baseline values
Reviewed Changes
Copilot reviewed 45 out of 57 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| toolchain/templates/frontier.mako | Adds conditional export of CRAY_ACC_USE_UNIFIED_MEM=1 for unified memory support |
| toolchain/mfc/run/case_dicts.py | Adds down_sample parameter and dynamic domain boundary parameters for x,y,z components |
| tests/EB58AF7F/golden.txt | Updates test baseline with 2 lines removed from numerical output data |
| tests/EB58AF7F/golden-metadata.txt | Updates test metadata with new timestamps, git commit, and build configuration |
| 'output_partial_domain': ParamType.LOG, | ||
| 'bubbles_lagrange': ParamType.LOG, | ||
| }) | ||
|
|
Copilot
AI
Aug 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter naming pattern creates potentially confusing names like 'x_a' and 'y_b'. Consider adding a comment explaining what these generated parameters represent or using more descriptive naming patterns.
| # The following loop generates parameter names like 'x_a', 'y_b', 'z_domain%beg', etc. | |
| # 'cmp' stands for the spatial component ('x', 'y', 'z'), and 'prepend' indicates the domain boundary or variable ('domain%beg', 'domain%end', 'a', 'b'). | |
| # These parameters are used to specify real-valued settings for each spatial direction and domain boundary. |
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||||
User description
Add a visualization of multijet rocket to the website
PR Type
Enhancement, Bug fix, Tests
Description
• Added comprehensive downsampling support across all MFC modules with 3D data averaging and upsampling capabilities
• Implemented Frontier unified memory management with HIP memory allocation and wall time performance tracking
• Fixed volume fraction handling bugs for single-fluid IGR (Interface Ghost Reconstruction) cases
• Added viscous multi-jet rocket simulation visualization to the website documentation
• Updated test metadata files with new timestamps and configuration changes
• Enhanced data I/O interfaces with optional IB (Immersed Boundary) parameters and downsampling support
• Added MPI support for downsampled data with strided access patterns
• Improved compiler support with Cray Fortran optimization directives and unified memory flags
Diagram Walkthrough
File Walkthrough
19 files
m_time_steppers.fpp
Frontier unified memory support and performance trackingsrc/simulation/m_time_steppers.fpp
• Added FRONTIER_UNIFIED memory management with HIP memory allocation
and pointer mapping
• Implemented wall time tracking and averaging
across all time-stepping routines
• Added compiler optimization
directives for Cray Fortran compiler
• Modified time-stepping
algorithms to handle unified memory architecture
m_data_output.fpp
Data output interface improvements and downsampling supportsrc/pre_process/m_data_output.fpp
• Modified abstract interface to make IB-related parameters optional
•
Added downsampling support with
q_cons_temptemporary arrays• Updated
data writing functions to handle optional IB markers and levelset data
• Added initialization and cleanup for downsampled data structures
m_start_up.fpp
Simulation startup with downsampling and performance enhancementssrc/simulation/m_start_up.fpp
• Added downsampling support with temporary arrays and upsampling
functionality
• Enhanced performance metrics display with wall time
averaging
• Modified data reading/writing to handle downsampled data
•
Updated GPU variable initialization for downsampling compatibility
m_data_output.fpp
Simulation data output with downsampling capabilitiessrc/simulation/m_data_output.fpp
• Added downsampling support with
q_cons_temparrays• Modified data
writing functions to handle downsampled data
• Updated memory
allocation for downsampled arrays
• Added conditional allocation based
on
run_time_infoflagm_data_input.f90
Post-processing data input with downsampling supportsrc/post_process/m_data_input.f90
• Added downsampling support for parallel data file reading
•
Implemented MPI vector types for strided data access
• Added
q_cons_temptemporary arrays for downsampled data• Modified data
reading routines to handle downsampled grid sizes
m_global_parameters.fpp
Global parameters update for downsampling and IGR fixessrc/pre_process/m_global_parameters.fpp
• Added
down_sampleboolean parameter• Fixed volume fraction indexing
logic for IGR method
• Updated coordinate bounds configuration with
IGR order parameter
• Modified MPI data allocation to skip when
downsampling is enabled
m_compute_levelset.fpp
Levelset computation with optional parameterssrc/pre_process/m_compute_levelset.fpp
• Made levelset and levelset_norm parameters optional in all levelset
computation functions
• Updated function signatures to support
optional IB-related data
m_helper.fpp
Data downsampling and upsampling helper functionssrc/common/m_helper.fpp
• Added
s_downsample_datasubroutine for 3D data downsampling with27-point averaging
• Added
s_upsample_datasubroutine forinterpolating downsampled data back to full resolution
m_global_parameters.fpp
Global parameters with wall time tracking and downsamplingsrc/simulation/m_global_parameters.fpp
• Replaced
timevariable withwall_timeandwall_time_avgforperformance tracking
• Added
down_sampleparameter with GPUdeclaration
• Fixed volume fraction indexing for IGR method
• Updated
coordinate bounds configuration
m_global_parameters.fpp
Post-processing global parameters with downsamplingsrc/post_process/m_global_parameters.fpp
• Added
down_sampleboolean parameter• Fixed volume fraction indexing
logic for IGR method
• Updated MPI data allocation for downsampling
support
m_patches.fpp
Patch application with optional IB parameterssrc/pre_process/m_patches.fpp
• Made IB-related parameters optional in patch application functions
•
Updated function calls to use optional parameters for levelset
computations
m_initial_condition.fpp
Initial condition setup with conditional IB supportsrc/pre_process/m_initial_condition.fpp
• Made IB-related allocations conditional based on
ibflag• Updated
patch application to handle optional IB parameters
m_boundary_common.fpp
Boundary common interface improvementssrc/common/m_boundary_common.fpp
• Added
intent(in)declarations to function parameters for betterinterface clarity
m_mpi_common.fpp
MPI common with downsampling data initializationsrc/common/m_mpi_common.fpp
• Added
s_initialize_mpi_data_dssubroutine for downsampled MPI datainitialization
m_start_up.f90
Post-processing startup with downsampling supportsrc/post_process/m_start_up.f90
• Added downsampling support to input file reading and grid size
calculations
m_helper_basic.fpp
Helper basic functions with IGR order supportsrc/common/m_helper_basic.fpp
• Updated coordinate bounds configuration to include
igr_orderparameter
• Modified buffer size calculation for IGR method
m_checker.fpp
Input validation for downsampling featuresrc/pre_process/m_checker.fpp
• Added validation checks for downsampling requirements and
constraints
index.html
Add viscous multi-jet rocket simulation to websitedocs/index.html
• Added new simulation entry for "Viscous multi-jet rocket"
• Included
simulation details: Frontier system, 12k MI250X GPUs, 1.5h runtime
•
Added Vimeo video link for the rocket visualization
CMakeLists.txt
Add Frontier unified memory support for Cray compilerCMakeLists.txt
• Added Frontier Unified Memory support for Cray Fortran compiler
•
Added conditional compilation flag
-DFRONTIER_UNIFIEDwhenMFC_Unifiedis enabled
• Included support within existing Cray compiler
configuration block
3 files
m_variables_conversion.fpp
Variable conversion fixes for IGR methodsrc/common/m_variables_conversion.fpp
• Fixed volume fraction handling for single-fluid IGR cases
• Added
conditional logic to skip volume fraction loops when not needed
m_assign_variables.fpp
Variable assignment fixes for IGR methodsrc/pre_process/m_assign_variables.fpp
• Added conditional logic to skip volume fraction assignment for
single-fluid IGR cases
m_sim_helpers.fpp
Simulation helpers IGR fixsrc/simulation/m_sim_helpers.fpp
• Fixed volume fraction handling for single-fluid IGR cases
7 files
m_mpi_proxy.fpp
MPI proxy updates for new parameterssrc/pre_process/m_mpi_proxy.fpp
• Added
igr_orderanddown_sampleto MPI broadcast parametersm_mpi_proxy.fpp
Post-processing MPI proxy with downsampling parametersrc/post_process/m_mpi_proxy.fpp
• Added
down_sampleto MPI broadcast parametersm_start_up.fpp
Pre-processing startup with downsampling parametersrc/pre_process/m_start_up.fpp
• Added
down_sampleparameter to input file reading• Updated data
file writing to handle optional IB parameters
m_mpi_proxy.fpp
Simulation MPI proxy with downsampling parametersrc/simulation/m_mpi_proxy.fpp
• Added
down_sampleto MPI broadcast parameterscase_dicts.py
Case dictionary updates for new parameterstoolchain/mfc/run/case_dicts.py
• Added
down_sampleparameter to case dictionary definitions• Added
domain boundary parameters for x, y, z coordinates
frontier.mako
Frontier template with unified memory supporttoolchain/templates/frontier.mako
• Added conditional export of
CRAY_ACC_USE_UNIFIED_MEMenvironmentvariable
.typos.toml
Typos configuration update.typos.toml
• Added "HSA" to the list of allowed words
13 files
golden-metadata.txt
Test metadata updatetests/A57E30FE/golden-metadata.txt
• Updated test metadata with new timestamps and environment
information
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/106C0BE6/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/CEAF553A/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/6077374F/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Removed
documentation section and reordered remaining sections
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/AE3FC5CB/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/0045D9F8/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/4440D46B/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/C7A6B609/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/E8979E4A/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/AFBCBDFA/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Reordered build
configuration sections and updated environment variables
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/37DDE283/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Removed
documentation section and reordered remaining sections
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/EB58AF7F/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 24, 2025
•
Changed test invocation from batch mode to single test execution
•
Updated Git commit hash and branch from IGRMergeOne to FrontierUVM
•
Modified hostname from VPN address to local MacBook
• Removed
simulation section and reordered remaining sections
golden-metadata.txt
Update test metadata with new timestamps and configurationtests/E49EF7B6/golden-metadata.txt
• Updated file creation timestamp from July 8 to July 25, 2025
•
Updated Git commit hash from
945bc22tobc21e60• Modified hostname
from VPN address to local MacBook
• Removed documentation section and
reordered remaining sections
1 files
modules
Clean up trailing whitespace in module configurationstoolchain/modules
• Removed trailing whitespace from Frontier GPU configuration line
•
Removed trailing whitespace from Carpenter configuration line
13 files