Skip to content

Commit

Permalink
bug fix memory calculator
Browse files Browse the repository at this point in the history
ci:no-compile
  • Loading branch information
BrianMarre committed Jan 24, 2025
1 parent f7b5239 commit 9cd0b85
Showing 1 changed file with 18 additions and 13 deletions.
31 changes: 18 additions & 13 deletions lib/python/picongpu/extra/utils/memory_calculator.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,33 +223,29 @@ def memory_required_by_super_cell_fields(
"""
self._check_cell_extent(super_cell_extent * self.super_cell_size)

number_cells_per_supercell = np.prod(self.super_cell_size)
number_cells_per_supercell = int(np.prod(self.super_cell_size))
# bytes
size_float_X = MemoryCalculator.get_value_size(self.precision)
# bytes
size_uint32 = np.uint32().itemsize

number_process_class_groups_in_rate_cache = 5

# bytes
size_rate_caches = 0
for number_states in number_atomic_states_by_atomic_physics_ion_species:
size_rate_caches += size_float_X * number_states * 5 + number_states * 4
size_rate_caches += number_states * (size_float_X * number_process_class_groups_in_rate_cache + size_uint32)

size_rejection_probability_cache_cell = size_float_X * number_cells_per_supercell
size_rejection_probability_cache_bin = size_float_X * number_electron_histogram_bins
size_field_energy_use_cache = size_float_X * number_cells_per_supercell

size_electron_histogram = 3 * size_float_X * number_electron_histogram_bins + size_float_X
size_shared_ressources_over_subscribed = 4
size_shared_found_unbound = 4
size_shared_ressources_over_subscribed = size_uint32
size_shared_found_unbound = size_uint32
size_time_remaining = size_float_X
size_time_step = size_float_X

ipd_sum_weight_all = size_float_X
ipd_sum_weight_electrons = size_float_X
ipd_sum_temperature_functional = size_float_X
ipd_sum_charge_number_ions = size_float_X
ipd_sum_charge_number_ions_squared = size_float_X
ipd_debye_length = size_float_X
ipd_zstar = size_float_X
ipd_temperature_energy = size_float_X

per_super_cell_memory = (
size_rate_caches
+ size_rejection_probability_cache_cell
Expand All @@ -262,6 +258,15 @@ def memory_required_by_super_cell_fields(
+ size_time_step
)

ipd_sum_weight_all = size_float_X
ipd_sum_weight_electrons = size_float_X
ipd_sum_temperature_functional = size_float_X
ipd_sum_charge_number_ions = size_float_X
ipd_sum_charge_number_ions_squared = size_float_X
ipd_debye_length = size_float_X
ipd_zstar = size_float_X
ipd_temperature_energy = size_float_X

if ipd_active:
per_super_cell_memory += (
ipd_sum_weight_all
Expand Down

0 comments on commit 9cd0b85

Please sign in to comment.