Skip to main content
Version: 16.11.0

multiprocessing

Task​

class Task()

__init__​

def __init__(func: Callable,
args: Optional[tuple] = None,
kwargs: Optional[dict] = None)

__eq__​

def __eq__(other)

__hash__​

def __hash__()

__repr__​

def __repr__()

TaskResult​

class TaskResult()

timeout_seconds​

timeout_seconds = None

memory_limit_in_gib​

memory_limit_in_gib = None

start_time​

start_time = None

end_time​

end_time = None

elapsed_time​

elapsed_time = None

out_of_memory​

out_of_memory = None

timed_out​

timed_out = None

max_memory_used_in_gib​

max_memory_used_in_gib = None

exit_code​

exit_code = None

__init__​

def __init__(task: Task,
success: bool,
result: Any = None,
exception: Union[Exception, None] = None)

__eq__​

def __eq__(other)

__hash__​

def __hash__()

__repr__​

def __repr__()

execute_task_and_put_in_queue​

def execute_task_and_put_in_queue(task: Task,
queue: "Queue[TaskResult]") -> None

TaskWatcher​

class TaskWatcher()

process​

process = None

start_time​

start_time = None

end_time​

end_time = None

elapsed_time​

elapsed_time = None

__init__​

def __init__(task: Task,
task_results_queue: "Queue[TaskResult]",
timeout_seconds: Optional[float] = None,
memory_limit_in_gib: Optional[float] = None,
sleep_time: float = 0.001,
memory_limit_polling_rate: float = 0.1,
auto_start: bool = True)

start_task​

def start_task() -> None

terminate_task​

def terminate_task() -> None

terminate_task_with_timeout​

def terminate_task_with_timeout() -> None

terminate_task_with_out_of_memory​

def terminate_task_with_out_of_memory() -> None

clean_watcher_queue​

def clean_watcher_queue()

watch_task​

def watch_task() -> None

update_queue​

def update_queue() -> None

psutil​

bytes_to_gigibytes​

def bytes_to_gigibytes(num_bytes: int) -> float

get_total_memory_usage_in_gib​

def get_total_memory_usage_in_gib(pid: Optional[int]) -> float

Calculate the total memory usage of a process and its child processes in gigibytes (GiB).

Arguments:

  • pid int, optional - The process ID for which memory usage is to be calculated. If None, returns 0.0.

Returns:

  • float - The total memory usage of the process and its children in GiB. If pid is None, returns 0.0.

get_available_memory_bytes​

def get_available_memory_bytes() -> int

Returns the available memory in bytes.

get_available_memory_gib​

def get_available_memory_gib() -> float

Returns the available memory in gigabytes.

GlasswallProcessManager​

class GlasswallProcessManager()

__init__​

def __init__(max_workers: Optional[int] = None,
worker_timeout_seconds: Optional[float] = None,
memory_limit_in_gib: Optional[float] = None)

__enter__​

def __enter__()

__exit__​

def __exit__(exc_type, exc_val, exc_tb)

queue_task​

def queue_task(task: Task)

as_completed​

def as_completed() -> Generator[TaskResult, None, None]

start_tasks​

def start_tasks()

wait_for_completed_process​

def wait_for_completed_process()

remove_completed_active_processes​

def remove_completed_active_processes()

clean_task_results_queue​

def clean_task_results_queue()