# Joinable Source: https://www.tensorplay.cn/docs/generated/tensorplay.distributed.algorithms.Joinable.html ```python class tensorplay.distributed.algorithms.Joinable ``` This defines an abstract base class for joinable classes. A joinable class (inheriting from [Joinable](#tensorplay.distributed.algorithms.Joinable)) should implement [join_hook()](#tensorplay.distributed.algorithms.Joinable.join_hook), which returns a [JoinHook](/docs/generated/tensorplay.distributed.algorithms.JoinHook.html#tensorplay.distributed.algorithms.JoinHook) instance, in addition to [join_device()](#tensorplay.distributed.algorithms.Joinable.join_device) and [join_process_group()](#tensorplay.distributed.algorithms.Joinable.join_process_group) that return device and process group information, respectively. ```python abstract property join_device ``` Return the device from which to perform collective communications needed by the join context manager. ```python abstractmethod join_hook(**kwargs) → JoinHook ``` Return a [JoinHook](/docs/generated/tensorplay.distributed.algorithms.JoinHook.html#tensorplay.distributed.algorithms.JoinHook) instance for the given [Joinable](#tensorplay.distributed.algorithms.Joinable). Parameters: kwargs ([dict](https://docs.python.org/3/builtins/stdtypes.html#dict)) – a [dict](https://docs.python.org/3/builtins/stdtypes.html#dict) containing any keyword arguments to modify the behavior of the join hook at run time; all [Joinable](#tensorplay.distributed.algorithms.Joinable) instances sharing the same join context manager are forwarded the same value for kwargs. ```python abstract property join_process_group: Any ``` Returns the process group for the collective communications needed by the join context manager itself.