@@ -61,6 +61,7 @@ class FluxJobExecutor(BaseExecutor):
6161 plot_dependency_graph (bool): Plot the dependencies of multiple future objects without executing them. For
6262 debugging purposes and to get an overview of the specified dependencies.
6363 plot_dependency_graph_filename (str): Name of the file to store the plotted graph in.
64+ log_obj_size (bool): Enable debug mode which reports the size of the communicated objects.
6465
6566 Examples:
6667 ```
@@ -100,6 +101,7 @@ def __init__(
100101 refresh_rate : float = 0.01 ,
101102 plot_dependency_graph : bool = False ,
102103 plot_dependency_graph_filename : Optional [str ] = None ,
104+ log_obj_size : bool = False ,
103105 ):
104106 """
105107 The executorlib.FluxJobExecutor leverages either the message passing interface (MPI), the SLURM workload manager
@@ -144,6 +146,7 @@ def __init__(
144146 plot_dependency_graph (bool): Plot the dependencies of multiple future objects without executing them. For
145147 debugging purposes and to get an overview of the specified dependencies.
146148 plot_dependency_graph_filename (str): Name of the file to store the plotted graph in.
149+ log_obj_size (bool): Enable debug mode which reports the size of the communicated objects.
147150
148151 """
149152 default_resource_dict : dict = {
@@ -174,6 +177,7 @@ def __init__(
174177 hostname_localhost = hostname_localhost ,
175178 block_allocation = block_allocation ,
176179 init_function = init_function ,
180+ log_obj_size = log_obj_size ,
177181 ),
178182 max_cores = max_cores ,
179183 refresh_rate = refresh_rate ,
@@ -197,6 +201,7 @@ def __init__(
197201 hostname_localhost = hostname_localhost ,
198202 block_allocation = block_allocation ,
199203 init_function = init_function ,
204+ log_obj_size = log_obj_size ,
200205 )
201206 )
202207
@@ -392,6 +397,7 @@ def create_flux_executor(
392397 hostname_localhost : Optional [bool ] = None ,
393398 block_allocation : bool = False ,
394399 init_function : Optional [Callable ] = None ,
400+ log_obj_size : bool = False ,
395401) -> Union [OneProcessTaskScheduler , BlockAllocationTaskScheduler ]:
396402 """
397403 Create a flux executor
@@ -427,6 +433,7 @@ def create_flux_executor(
427433 resources have to be defined on the executor, rather than during the submission
428434 of the individual function.
429435 init_function (None): optional function to preset arguments for functions which are submitted later
436+ log_obj_size (bool): Enable debug mode which reports the size of the communicated objects.
430437
431438 Returns:
432439 InteractiveStepExecutor/ InteractiveExecutor
@@ -441,6 +448,7 @@ def create_flux_executor(
441448 cores_per_worker = resource_dict .get ("cores" , 1 )
442449 resource_dict ["cache_directory" ] = cache_directory
443450 resource_dict ["hostname_localhost" ] = hostname_localhost
451+ resource_dict ["log_obj_size" ] = log_obj_size
444452 check_init_function (block_allocation = block_allocation , init_function = init_function )
445453 check_pmi (backend = "flux_allocation" , pmi = flux_executor_pmi_mode )
446454 check_oversubscribe (oversubscribe = resource_dict .get ("openmpi_oversubscribe" , False ))
0 commit comments