2222
2323
2424@gempy_profiler_decorator
25- def compute_dual_contouring_v2 (dc_data_list : list [DualContouringData ],
26- left_right_codes = None ) -> List [DualContouringMesh ]:
27- parallel_results = _parallel_process (dc_data_list , left_right_codes )
25+ def compute_dual_contouring_v2 (dc_data_list : list [DualContouringData ], ) -> List [DualContouringMesh ]:
26+ parallel_results = _parallel_process (dc_data_list )
2827
2928 if parallel_results is not None :
3029 return parallel_results
@@ -35,25 +34,25 @@ def compute_dual_contouring_v2(dc_data_list: list[DualContouringData],
3534 stack_meshes : List [DualContouringMesh ] = []
3635
3736 for dc_data in dc_data_list :
38- mesh = _process_one_surface (dc_data , left_right_codes )
37+ mesh = _process_one_surface (dc_data , dc_data . left_right_codes )
3938 stack_meshes .append (mesh )
4039 return stack_meshes
4140
4241
43- def _parallel_process (dc_data_list : list [DualContouringData ], left_right_codes ):
42+ def _parallel_process (dc_data_list : list [DualContouringData ]):
4443 # Check if we should use parallel processing
4544 n_surfaces_to_export = len (dc_data_list )
4645 use_parallel = _should_use_parallel_processing (n_surfaces_to_export , BackendTensor .engine_backend )
4746 parallel_results = None
4847
4948 if use_parallel and False : # ! (Miguel Sep 25) I do not see a speedup
5049 print (f"Using parallel processing for { n_surfaces_to_export } surfaces" )
51- parallel_results = _parallel_process_surfaces_v2 (dc_data_list , left_right_codes )
50+ parallel_results = _parallel_process_surfaces_v2 (dc_data_list )
5251
5352 return parallel_results
5453
5554
56- def _parallel_process_surfaces_v2 (dc_data_list : list [DualContouringData ], left_right_codes , num_workers = None , chunk_size = 2 ):
55+ def _parallel_process_surfaces_v2 (dc_data_list : list [DualContouringData ], num_workers = None , chunk_size = 2 ):
5756 """Process surfaces in parallel using multiprocessing."""
5857 n_surfaces = len (dc_data_list )
5958
@@ -70,6 +69,7 @@ def _parallel_process_surfaces_v2(dc_data_list: list[DualContouringData], left_r
7069 'xyz_on_centers' : dc_data .xyz_on_centers ,
7170 'dxdydz' : dc_data .dxdydz ,
7271 'gradients' : dc_data .gradients ,
72+ 'left_right_codes' : dc_data .left_right_codes ,
7373 'n_surfaces_to_export' : dc_data .n_surfaces_to_export ,
7474 'tree_depth' : dc_data .tree_depth
7575 }
@@ -89,7 +89,7 @@ def _parallel_process_surfaces_v2(dc_data_list: list[DualContouringData], left_r
8989 for chunk in chunks :
9090 result = pool .apply_async (
9191 _process_surface_batch_v2 ,
92- (chunk , dc_data_dicts , left_right_codes )
92+ (chunk , dc_data_dicts )
9393 )
9494 async_results .append (result )
9595
@@ -120,11 +120,12 @@ def _process_surface_batch_v2(surface_indices, dc_data_dicts, left_right_codes):
120120 xyz_on_centers = dc_data_dict ['xyz_on_centers' ],
121121 dxdydz = dc_data_dict ['dxdydz' ],
122122 gradients = dc_data_dict ['gradients' ],
123+ left_right_codes = dc_data_dict ['left_right_codes' ],
123124 n_surfaces_to_export = dc_data_dict ['n_surfaces_to_export' ],
124125 tree_depth = dc_data_dict ['tree_depth' ]
125126 )
126127 # Process the surface
127- mesh = _process_one_surface (dc_data , left_right_codes )
128+ mesh = _process_one_surface (dc_data , dc_data . left_right_codes )
128129 results .append (mesh )
129130
130131 return results
0 commit comments