mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 09:28:51 -06:00
LearningSolver: Handle exceptions in parallel_solve
This commit is contained in:
@@ -6,6 +6,7 @@ import gzip
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import pickle
|
import pickle
|
||||||
|
import traceback
|
||||||
import tempfile
|
import tempfile
|
||||||
from typing import Optional, List, Any, IO, cast, BinaryIO, Union, Callable, Dict
|
from typing import Optional, List, Any, IO, cast, BinaryIO, Union, Callable, Dict
|
||||||
|
|
||||||
@@ -49,12 +50,17 @@ def _parallel_solve(idx):
|
|||||||
output_filename = None
|
output_filename = None
|
||||||
else:
|
else:
|
||||||
output_filename = output_filenames[idx]
|
output_filename = output_filenames[idx]
|
||||||
stats = solver.solve(
|
try:
|
||||||
instances[idx],
|
stats = solver.solve(
|
||||||
output_filename=output_filename,
|
instances[idx],
|
||||||
discard_output=discard_outputs,
|
output_filename=output_filename,
|
||||||
)
|
discard_output=discard_outputs,
|
||||||
return stats, instances[idx]
|
)
|
||||||
|
return stats, instances[idx]
|
||||||
|
except Exception as e:
|
||||||
|
traceback.print_exc()
|
||||||
|
logger.exception(f"Exception while solving {instances[idx]}. Ignoring.")
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
class LearningSolver:
|
class LearningSolver:
|
||||||
@@ -369,6 +375,7 @@ class LearningSolver:
|
|||||||
num_cpus=n_jobs,
|
num_cpus=n_jobs,
|
||||||
desc=label,
|
desc=label,
|
||||||
)
|
)
|
||||||
|
results = [r for r in results if r[0]]
|
||||||
stats = []
|
stats = []
|
||||||
for (idx, (s, instance)) in enumerate(results):
|
for (idx, (s, instance)) in enumerate(results):
|
||||||
stats.append(s)
|
stats.append(s)
|
||||||
|
|||||||
Reference in New Issue
Block a user