From 1b7e646367704d4a51c0585ddb8d74ee666c446d Mon Sep 17 00:00:00 2001
From: Raffaele Gaetano <raffaele.gaetano@cirad.fr>
Date: Thu, 20 Jul 2023 10:58:19 +0200
Subject: [PATCH] FIX: lowered memory usage to avoid deadlocks (back to fork)

---
 OBIA/segmentation.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/OBIA/segmentation.py b/OBIA/segmentation.py
index fc20530..e08c9e4 100644
--- a/OBIA/segmentation.py
+++ b/OBIA/segmentation.py
@@ -127,11 +127,11 @@ def lsgrm_process_tile(input_image, params : LSGRMParams, tile_width, tile_heigh
             out_graph + '_edgeMargin_{}_{}.bin'.format(tile_idx[1], tile_idx[0])]
 
 def get_ls_seg_parameter(input_image, roi=None, margin=0, n_proc=None, memory=None, force_parallel=False):
-    # Define default number of threads (half) and memory amount (3/4 of available)
+    # Define default number of threads (half) and memory amount (1/2 of available)
     if n_proc is None:
         n_proc = round(mp.cpu_count() / 2)
     if memory is None:
-        memory = round(psutil.virtual_memory().available * 0.75)
+        memory = round(psutil.virtual_memory().available * 0.5)
     else:
         memory *= 1e6
 
@@ -196,7 +196,7 @@ def lsgrm_light(input_image, params : LSGRMParams, out_seg, n_proc=None, memory=
     else:
         tile_index_list = product(range(n_tiles_x), range(n_tiles_y))
         arg_list = [(input_image, params, nominal_tw, nominal_th, x, out_seg, roi) for x in tile_index_list]
-        with mp.get_context("spawn").Pool(n_proc) as p:
+        with mp.Pool(n_proc) as p:
             out_tiles = p.starmap(grm_process_tile, arg_list)
         cumul_label = 0
         for f,l in out_tiles:
-- 
GitLab