Skip to content

Commit

Permalink
skip benchmark with GNU error
Browse files Browse the repository at this point in the history
  • Loading branch information
officialasishkumar committed Jul 2, 2024
1 parent 14f29ad commit a245a7d
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 130 deletions.
19 changes: 19 additions & 0 deletions benchmarks/benchmark_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -394,3 +394,22 @@ def geometry(self):
v_inner=np.array([-1, -1], dtype=np.float64),
v_outer=np.array([-1, -1], dtype=np.float64),
)


@property
def estimators(self):
return radfield_mc_estimators.RadiationFieldMCEstimators(
j_estimator=np.array([0.0, 0.0], dtype=np.float64),
nu_bar_estimator=np.array([0.0, 0.0], dtype=np.float64),
j_blue_estimator=np.array(
[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], dtype=np.float64
),
Edotlu_estimator=np.array(
[[0.0, 0.0, 1.0], [0.0, 0.0, 1.0]], dtype=np.float64
),
photo_ion_estimator=np.empty((0, 0), dtype=np.float64),
stim_recomb_estimator=np.empty((0, 0), dtype=np.float64),
bf_heating_estimator=np.empty((0, 0), dtype=np.float64),
stim_recomb_cooling_estimator=np.empty((0, 0), dtype=np.float64),
photo_ion_estimator_statistics=np.empty((0, 0), dtype=np.int64),
)
10 changes: 2 additions & 8 deletions benchmarks/run_tardis.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

from benchmarks.benchmark_base import BenchmarkBase
from tardis import run_tardis
from tardis.io.configuration.config_reader import Configuration


class BenchmarkRunTardis(BenchmarkBase):
"""
Expand All @@ -14,12 +12,8 @@ class BenchmarkRunTardis(BenchmarkBase):

def __init__(self):
super().__init__()
self.config = None

def setup(self):
filename = "data/tardis_configv1_benchmark.yml"
path = self.get_relative_path(filename)
self.config = Configuration.from_yaml(path)
self.path = self.get_relative_path(filename)

def time_run_tardis(self):
run_tardis(self.config, log_level="ERROR", show_progress_bars=False)
run_tardis(self.path, log_level="ERROR", show_progress_bars=False)
15 changes: 3 additions & 12 deletions benchmarks/transport_geometry_calculate_distances.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,9 @@ class BenchmarkTransportGeometryCalculateDistances(BenchmarkBase):
def model(self):
return 5.2e7

@parameterize(
{
"Packet params": [
{"mu": 0.3, "r": 7.5e14},
{"mu": -0.3, "r": 7.5e13},
{"mu": -0.3, "r": 7.5e14},
]
}
)
def time_calculate_distance_boundary(self, packet_params):
mu = packet_params["mu"]
r = packet_params["r"]
def time_calculate_distance_boundary(self):
mu = 0.3
r = 7.5e14

calculate_distances.calculate_distance_boundary(
r, mu, self.geometry.r_inner[0], self.geometry.r_outer[0]
Expand Down
20 changes: 12 additions & 8 deletions benchmarks/transport_montecarlo_numba_formal_integral_p.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
from tardis.io.configuration.config_reader import Configuration
from tardis.model.geometry.radial1d import NumbaRadial1DGeometry


# Error in all functions: Terminating: fork() called from a process already using GNU OpenMP, this is unsafe.
@skip_benchmark
class BenchmarkMontecarloMontecarloNumbaNumbaFormalIntegral(BenchmarkBase):
"""
Class to benchmark the numba formal integral function.
Expand Down Expand Up @@ -53,16 +54,14 @@ def __init__(self):
def time_intensity_black_body(self, parameters):
nu = parameters["nu"]
temperature = parameters["temperature"]
func = formal_integral.intensity_black_body
func(nu, temperature)
formal_integral.intensity_black_body(nu, temperature)

@parameterize({"N": (1e2, 1e3, 1e4, 1e5)})
def time_trapezoid_integration(self, n):
func = formal_integral.trapezoid_integration
h = 1.0
data = np.random.random(int(n))

func(data, h)
formal_integral.trapezoid_integration(data, h)

@staticmethod
def calculate_z(r, p):
Expand Down Expand Up @@ -106,6 +105,8 @@ def time_explosion(self):
# time taken for a photon to move 1 cm
return 1 / c.c.cgs.value

# Error: Terminating: fork() called from a process already using GNU OpenMP, this is unsafe.
@skip_benchmark
@parameterize({"p": [0.0, 0.5, 1.0], "Test data": TESTDATA})
def time_calculate_z(self, p, test_data):
func = formal_integral.calculate_z
Expand All @@ -121,15 +122,14 @@ def time_populate_z_photosphere(self, p, test_data):
formal_integral.FormalIntegrator(
self.formal_integral_geometry(test_data), None, None
)
func = formal_integral.populate_z
r_inner = self.formal_integral_geometry(test_data).r_inner
self.formal_integral_geometry(test_data).r_outer

p = r_inner[0] * p
oz = np.zeros_like(r_inner)
oshell_id = np.zeros_like(oz, dtype=np.int64)

func(
formal_integral.populate_z(
self.formal_integral_geometry(test_data),
self.formal_integral_geometry(test_data),
p,
Expand Down Expand Up @@ -159,6 +159,8 @@ def time_populate_z_shells(self, p, test_data) -> None:
oshell_id,
)

# Error: Terminating: fork() called from a process already using GNU OpenMP, this is unsafe.
@skip_benchmark
@parameterize(
{
"Parameters": [
Expand All @@ -174,13 +176,15 @@ def time_calculate_p_values(self, Parameters):

# Benchmark for functions in FormalIntegrator class

# Error: Terminating: fork() called from a process already using GNU OpenMP, this is unsafe.
@skip_benchmark
def time_FormalIntegrator_functions(self):
self.FormalIntegrator.calculate_spectrum(
self.Simulation.transport.transport_state.spectrum.frequency
)
self.FormalIntegrator.make_source_function()
self.FormalIntegrator.generate_numba_objects()
self.FormalIntegrator.formal_integral(
self.Simulation.transport.transport_state.spectrum.frequency,
self.Simulation.transport.transport_state.spectrum.frequency,
1000
)
70 changes: 1 addition & 69 deletions benchmarks/transport_montecarlo_numba_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,72 +23,4 @@ def time_opacity_state_initialize(self, input_params):
line_interaction_type,
self.verysimple_disable_line_scattering,
self.verysimple_continuum_processes_enabled,
)


@parameterize(
{
"parameters": [
{
"nus": [3.0e15, 0.0, 1e15, 1e5],
"energies": [0.4, 0.1, 0.6, 1e10],
"initial_mus": [0.1, 0, 1, 0.9],
"initial_rs": [3e42, 4.5e45, 0, 9.0e40],
"last_interaction_in_nus": np.array(
[3.0e15, 0.0, 1e15, 1e5], dtype=np.float64
),
"last_interaction_types": np.array([1, 1, 3, 2], dtype=np.int64),
"last_interaction_in_ids": np.array([100, 0, 1, 1000], dtype=np.int64),
"last_interaction_out_ids": np.array(
[1201, 123, 545, 1232], dtype=np.int64
),
"last_interaction_shell_ids": np.array([2, -1, 6, 0], dtype=np.int64)
}
]
}
)
def time_VPacketCollection_add_packet(self, parameters):
verysimple_3vpacket_collection = self.verysimple_3vpacket_collection

nus = parameters["nus"]
energies = parameters["energies"]
initial_mus = parameters["initial_mus"]
initial_rs = parameters["initial_rs"]
last_interaction_in_nus = parameters["last_interaction_in_nus"]
last_interaction_types = parameters["last_interaction_types"]
last_interaction_in_ids = parameters["last_interaction_in_ids"]
last_interaction_out_ids = parameters["last_interaction_out_ids"]
last_interaction_shell_ids = parameters["last_interaction_shell_ids"]

for (
nu,
energy,
initial_mu,
initial_r,
last_interaction_in_nu,
last_interaction_type,
last_interaction_in_id,
last_interaction_out_id,
last_interaction_shell_id,
) in zip(
nus,
energies,
initial_mus,
initial_rs,
last_interaction_in_nus,
last_interaction_types,
last_interaction_in_ids,
last_interaction_out_ids,
last_interaction_shell_ids,
):
verysimple_3vpacket_collection.add_packet(
nu,
energy,
initial_mu,
initial_r,
last_interaction_in_nu,
last_interaction_type,
last_interaction_in_id,
last_interaction_out_id,
last_interaction_shell_id,
)
)
13 changes: 0 additions & 13 deletions benchmarks/transport_montecarlo_opacities.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,3 @@ def time_pair_creation_opacity_calculation(
calculate_opacity.pair_creation_opacity_calculation(
energy, ejecta_density, iron_group_fraction
)

@parameterize(
{
"Energy": [
511.0,
255.5,
0.0,
511.0e7,
]
}
)
def time_kappa_calculation(self, energy):
calculate_opacity.kappa_calculation(energy)
18 changes: 0 additions & 18 deletions benchmarks/transport_montecarlo_packet.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,6 @@ class BenchmarkMontecarloMontecarloNumbaPacket(BenchmarkBase):
Class to benchmark the numba packet function.
"""

@property
def estimators(self):
return radfield_mc_estimators.RadiationFieldMCEstimators(
j_estimator=np.array([0.0, 0.0], dtype=np.float64),
nu_bar_estimator=np.array([0.0, 0.0], dtype=np.float64),
j_blue_estimator=np.array(
[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], dtype=np.float64
),
Edotlu_estimator=np.array(
[[0.0, 0.0, 1.0], [0.0, 0.0, 1.0]], dtype=np.float64
),
photo_ion_estimator=np.empty((0, 0), dtype=np.float64),
stim_recomb_estimator=np.empty((0, 0), dtype=np.float64),
bf_heating_estimator=np.empty((0, 0), dtype=np.float64),
stim_recomb_cooling_estimator=np.empty((0, 0), dtype=np.float64),
photo_ion_estimator_statistics=np.empty((0, 0), dtype=np.int64),
)

@parameterize(
{
"Parameters": [
Expand Down
4 changes: 3 additions & 1 deletion benchmarks/transport_montecarlo_single_packet_loop.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,22 @@

from benchmarks.benchmark_base import BenchmarkBase
from tardis.transport.montecarlo import single_packet_loop
from asv_runner.benchmarks.mark import skip_benchmark


class BenchmarkMontecarloMontecarloNumbaVpacket(BenchmarkBase):
"""
Class to benchmark the single packet loop function.
"""

@skip_benchmark
def time_single_packet_loop(self):
single_packet_loop.single_packet_loop(
self.packet,
self.verysimple_numba_radial_1d_geometry,
self.verysimple_time_explosion,
self.verysimple_opacity_state,
self.verysimple_radfield_mc_estimators,
self.estimators,
self.verysimple_packet_collection,
self.rpacket_tracker,
self.montecarlo_configuration
Expand Down
3 changes: 2 additions & 1 deletion benchmarks/transport_montecarlo_vpacket.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""

import numpy as np
from asv_runner.benchmarks.mark import parameterize
from asv_runner.benchmarks.mark import parameterize, skip_benchmark

import tardis.transport.montecarlo.vpacket as vpacket
from benchmarks.benchmark_base import BenchmarkBase
Expand Down Expand Up @@ -144,6 +144,7 @@ def time_trace_bad_vpacket(self):
continuum_processes_enabled,
)

@skip_benchmark
@parameterize(
{
"Paramters": [
Expand Down

0 comments on commit a245a7d

Please sign in to comment.