Source code for megafish.config

import importlib
import dask

if importlib.util.find_spec("cupy") is not None:
    USE_GPU = True
else:
    USE_GPU = False


[docs] def set_resource(gpu=True, scheduler=None): """ Sets the resource configuration for GPU usage and concurrent future scheduling. Args: gpu (bool, optional): Whether to use the GPU. This option is only effective in a CUDA environment. Defaults to True. scheduler (str or None, optional): The type of scheduler to use as a string. If None, uses the current scheduler. Defaults to None. Returns: None Raises: ValueError: If an invalid scheduler type is provided. """ use_gpu(gpu) if scheduler is not None: set_scheduler(scheduler)
[docs] def use_gpu(usage): """ Configures the usage of GPU for processing. This function reloads the modules to reflect the changes in the resource configuration. Args: usage (bool): A flag indicating whether to enable GPU usage. Returns: None """ global USE_GPU USE_GPU = usage from . import decode, process, register, segment, seqfish, seqif, view importlib.reload(decode) importlib.reload(process) importlib.reload(register) importlib.reload(segment) importlib.reload(seqfish) importlib.reload(seqif) importlib.reload(view)
[docs] def set_scheduler(scheduler): """ Sets the scheduler for Dask. Args: scheduler (str): The type of scheduler to use (e.g., 'threads', 'processes', etc.). Returns: None Raises: ValueError: If the provided scheduler type is invalid. """ dask.config.set(scheduler=scheduler)
[docs] def show_resource(): """ Shows the current resource configuration. This function is inserted in the processing functions to show the current resource configuration. Returns: str: A string representation of the current resource configuration. """ output = " [" if USE_GPU: output += "GPU/" else: output += "CPU/" output += str(dask.config.get("scheduler")) + "]" return output