事件#
创建于: 2021年05月04日 | 最后更新于: 2024年06月10日
模块包含与标准 Python 日志集成的事件处理机制。
用法示例
from torch.distributed.elastic import events
event = events.Event(
name="test_event", source=events.EventSource.WORKER, metadata={...}
)
events.get_logging_handler(destination="console").info(event)
API 方法#
- torch.distributed.elastic.events.construct_and_record_rdzv_event(run_id, message, node_state, name='', hostname='', pid=None, master_endpoint='', local_id=None, rank=None)[源代码]#
初始化 rendezvous 事件对象并记录其操作。
- 参数
run_id (str) – rendezvous 的运行 ID。
message (str) – 描述事件的消息。
node_state (NodeState) – 节点的当前状态(INIT, RUNNING, SUCCEEDED, FAILED)。
name (str) – 事件名称。(例如:当前正在执行的操作)。
hostname (str) – 节点的 hostname。
pid (Optional[int]) – 节点的进程 ID。
master_endpoint (str) – rendezvous 存储的主节点端点,如果已知。
local_id (Optional[int]) – 节点的 local_id,如果已在 dynamic_rendezvous.py 中定义。
rank (Optional[int]) – 节点的 rank,如果已知。
- 返回
无
- 返回类型
无
示例
>>> # See DynamicRendezvousHandler class >>> def _record( ... self, ... message: str, ... node_state: NodeState = NodeState.RUNNING, ... rank: Optional[int] = None, ... ) -> None: ... construct_and_record_rdzv_event( ... name=f"{self.__class__.__name__}.{get_method_name()}", ... run_id=self._settings.run_id, ... message=message, ... node_state=node_state, ... hostname=self._this_node.addr, ... pid=self._this_node.pid, ... local_id=self._this_node.local_id, ... rank=rank, ... )
事件对象#
- class torch.distributed.elastic.events.api.Event(name, source, timestamp=0, metadata=<factory>)[源代码]#
该类表示在 torchelastic 作业执行期间发生的通用事件。
该事件可以是任何有意义的操作。
- 参数
name (str) – 事件名称。
source (EventSource) – 事件生产者,例如:agent 或 worker。
timestamp (int) – 事件发生时的毫秒级时间戳。
metadata (dict[str, Union[str, int, float, bool, NoneType]]) – 与事件关联的附加数据。
- torch.distributed.elastic.events.api.EventMetadataValue#
别名:
Optional
[Union
[str
,int
,float
,bool
]]