@@ -186,6 +186,29 @@ function extrema_from_split_array(iterable)
186
186
collect (zip (min_vals,max_vals))
187
187
end
188
188
189
+ function moderanges_common_lastarray (iterable)
190
+ m = extrema_from_split_array (iterable)
191
+ lastvar_min = last (m)[1 ]
192
+ lastvar_max = last (m)[2 ]
193
+
194
+ val_first = first (iterable)
195
+ min_vals = collect (val_first[1 : end - 1 ])
196
+ max_vals = copy (min_vals)
197
+
198
+ for val in iterable
199
+ for (ind,vi) in enumerate (val[1 : end - 1 ])
200
+ if val[end ]== lastvar_min
201
+ min_vals[ind] = min (min_vals[ind],vi)
202
+ end
203
+ if val[end ]== lastvar_max
204
+ max_vals[ind] = max (max_vals[ind],vi)
205
+ end
206
+ end
207
+ end
208
+
209
+ [(m,lastvar_min) for m in min_vals],[(m,lastvar_max) for m in max_vals]
210
+ end
211
+
189
212
function get_hostnames (procs_used= workers ())
190
213
hostnames = Vector {String} (undef,length (procs_used))
191
214
@sync for (ind,p) in enumerate (procs_used)
@@ -258,7 +281,7 @@ get_processor_id_from_split_array,
258
281
procid_allmodes,mode_index_in_file,
259
282
get_processor_range_from_split_array,workers_active,worker_rank,
260
283
get_index_in_split_array,procid_and_mode_index,extrema_from_split_array,
261
- pmapsum,sum_at_node,pmap_onebatch_per_worker,
284
+ pmapsum,sum_at_node,pmap_onebatch_per_worker,moderanges_common_lastarray,
262
285
get_nodes,get_hostnames,get_nprocs_node
263
286
264
287
end # module
0 commit comments