Lattice Boltzmann Boundary Encoding in Unused Population Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Lattice Boltzmann methods are memory-bound and face challenges in implementing complex boundary conditions, which increase memory requirements and hinder data locality, making performance optimization techniques impractical.
Innovation Solution
The method involves encoding boundary condition data in unused portions of random access memory and providing it to local memory for application during the lattice Boltzmann modeling process, using techniques like kernel fusion to optimize memory usage and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If complex boundary conditions are implemented in lattice Boltzmann methods, then the modeling capability is improved, but memory requirements increase and data locality is hindered
Solution Approach 1:
The patent makes the population storage locations serve multiple functions: they simultaneously store particle population data and boundary condition parameters. By encoding boundary condition data (such as wall positions, pressure values, velocity components) within the same memory locations that would otherwise store outgoing or incoming populations, the system eliminates the need for separate boundary condition storage structures, thereby reducing overall memory requirements while maintaining complex boundary condition capabilities
Solution Approach 2:
The patent nests boundary condition data within the population storage structure by encoding boundary parameters in unused portions of population storage locations. This nested arrangement allows boundary condition information to be embedded within the existing population data structure, optimizing memory utilization and improving data locality without requiring additional memory resources
2Adaptability or versatility
If complex boundary conditions are implemented in lattice Boltzmann methods, then the modeling capability is improved, but performance optimization techniques become impractical
Solution Approach 1:
The patent merges the boundary condition application process with the collision and streaming operations into a unified kernel. By encoding boundary condition data in the same memory locations as population data and processing both together in a single computational kernel, the patent eliminates the need for separate boundary condition handling steps, thereby simplifying the implementation while maintaining support for complex boundary conditions
3Reliability
If separate memory is allocated for boundary condition data, then the boundary conditions can be stored, but memory overhead increases
Solution Approach 1:
The patent makes the population storage locations serve multiple functions: they simultaneously store particle population data and boundary condition parameters. By encoding boundary condition data (such as wall positions, pressure values, velocity components) within the same memory locations that would otherwise store outgoing or incoming populations, the system eliminates the need for separate boundary condition storage structures, thereby reducing overall memory requirements while maintaining complex boundary condition capabilities
Solution Approach 2:
The patent recovers unused memory resources by identifying and utilizing the storage locations for outgoing populations at boundaries (which are not requested from memory) or incoming populations (which will be missing from memory). These previously wasted or unused portions are recovered and repurposed to store boundary condition data, thereby eliminating memory overhead without compromising the reliability of boundary condition storage
Data Source
AI summary
Methods, systems, and apparatus, including medium-encoded computer program products include: receiving an allocation of storage locations in a first memory, where the storage locations are used for storing representations of particle populations for respective lattice units of a discretized space, where the first memory is a random access memory of a processing system; receiving boundary conditions data; encoding the boundary condition data in unused portions of the storage locations of the first memory during at least one time step of a lattice Boltzmann modelling process; providing the boundary conditions data from the first memory to a second memory for applying, in the second memory, the boundary conditions at the one or more boundaries during the at least one time step, where the second memory is a local memory of the processing system; and providing a result of the at least one time step of the lattice Boltzmann modelling process.


