@@ -1234,11 +1234,16 @@ def adaptive_chunked_choosers(
12341234
12351235 num_choosers = len (choosers .index )
12361236
1237+ if state .settings .multiprocess :
1238+ num_processes = state .get_injectable ("num_processes" , 1 )
1239+ else :
1240+ num_processes = 1
1241+
12371242 if state .settings .chunk_training_mode == MODE_EXPLICIT :
12381243 if explicit_chunk_size < 1 :
12391244 chunk_size = math .ceil (num_choosers * explicit_chunk_size )
12401245 else :
1241- chunk_size = int (explicit_chunk_size )
1246+ chunk_size = math . ceil (explicit_chunk_size / num_processes )
12421247 elif chunk_size is None :
12431248 chunk_size = state .settings .chunk_size
12441249
@@ -1372,11 +1377,16 @@ def adaptive_chunked_choosers_and_alts(
13721377 f"with { num_choosers } choosers and { num_alternatives } alternatives"
13731378 )
13741379
1380+ if state .settings .multiprocess :
1381+ num_processes = state .get_injectable ("num_processes" , 1 )
1382+ else :
1383+ num_processes = 1
1384+
13751385 if state .settings .chunk_training_mode == MODE_EXPLICIT :
13761386 if explicit_chunk_size < 1 :
13771387 chunk_size = math .ceil (num_choosers * explicit_chunk_size )
13781388 else :
1379- chunk_size = int (explicit_chunk_size )
1389+ chunk_size = int (explicit_chunk_size / num_processes )
13801390 elif chunk_size is None :
13811391 chunk_size = state .settings .chunk_size
13821392
@@ -1389,7 +1399,14 @@ def adaptive_chunked_choosers_and_alts(
13891399 chunk_training_mode = state .settings .chunk_training_mode ,
13901400 )
13911401 rows_per_chunk , estimated_number_of_chunks = chunk_sizer .initial_rows_per_chunk ()
1392- assert (rows_per_chunk > 0 ) and (rows_per_chunk <= num_choosers )
1402+ assert (rows_per_chunk > 0 ) and (
1403+ (rows_per_chunk <= num_choosers )
1404+ or (
1405+ (rows_per_chunk >= num_choosers )
1406+ and (estimated_number_of_chunks == 1 )
1407+ and (state .settings .chunk_training_mode == MODE_EXPLICIT )
1408+ )
1409+ )
13931410
13941411 # alt chunks boundaries are where index changes
13951412 alt_ids = alternatives .index .values
0 commit comments