
    VhQ                         d dl Z d dlZd dlmZmZ d dlmZmZmZ d dl	m
Z
mZmZmZ d dlmZ ddgZ ej"                  e      ZdZ G d	 de
      Zd
ede
fdZy)    N)castOptional)PrefixStoreStoreTCPStore)RendezvousHandlerRendezvousInfoRendezvousParametersRendezvousStoreInfo)parse_rendezvous_endpointStaticTCPRendezvouscreate_rdzv_handleriX  c                       e Zd ZdZdedededededefdZd	efd
Zed	e	fd       Z
d	efdZd Zd Zd Zd	efdZd	e	fdZy)r   z
    Static rendezvous that is a wrapper around the TCPStore.

    Creates TCPStore based on the input parameters with the
    listener on the agent with group_rank=0
    master_addrmaster_portrank
world_sizerun_idtimeoutc                     || _         || _        || _        || _        || _        t        j                  |      | _        d | _        y )N)seconds)	r   r   r   r   r   datetime	timedeltar   _store)selfr   r   r   r   r   r   s          j/home/dcms/DCMS/lib/python3.12/site-packages/torch/distributed/elastic/rendezvous/static_tcp_rendezvous.py__init__zStaticTCPRendezvous.__init__'   sB     '&	$))':'+    returnc                      y)Nstatic r   s    r   get_backendzStaticTCPRendezvous.get_backend8   s    r   c                      yNTr"   r#   s    r   use_agent_storez#StaticTCPRendezvous.use_agent_store;   s    r   c                    t         j                  d       | j                  dk(  }| j                  s>t	        | j
                  | j                  | j                  || j                  d      | _        t        | j                  | j                        }t        | j
                  | j                        }t        || j                  | j                  |      S )Nz3Creating TCPStore as the c10d::Store implementationr   T)multi_tenant)loggerinfor   r   r   r   r   r   r   r   r   r   r	   )r   	is_masterstorebootstrap_store_infos       r   next_rendezvousz#StaticTCPRendezvous.next_rendezvous?   s    IJIIN	{{"    !DK DKK5243C3CTEUEUVIIOO 	
 	
r   c                      y)NFr"   r#   s    r   	is_closedzStaticTCPRendezvous.is_closedU   s    r   c                      y Nr"   r#   s    r   
set_closedzStaticTCPRendezvous.set_closedX   s    r   c                      y)Nr   r"   r#   s    r   num_nodes_waitingz%StaticTCPRendezvous.num_nodes_waiting[   s    r   c                     | j                   S r3   )r   r#   s    r   
get_run_idzStaticTCPRendezvous.get_run_id^   s    {{r   c                      yr&   r"   r#   s    r   shutdownzStaticTCPRendezvous.shutdowna   s    r   N)__name__
__module____qualname____doc__strintr   r$   propertyboolr'   r	   r/   r1   r4   r6   r8   r:   r"   r   r   r   r      s    ,, , 	,
 , , ,"S    
 
,C $ r   paramsr   c                    d| j                   vrt        d      | j                  j                         }|st        d      t	        |d      \  }}|dk(  rt        d| d      | j
                  }t        t        | j                   j                  d            }| j                  }d| j                   v rt        | j                   d         }nt        }t        ||||||      S )Nr   zMrank is absent in RendezvousParameters.Try add --node-rank to the cmd requestzdendpoint is absent in RendezvousParametersTry add --master-port and --master-addr to the cmd requestzPort is absent in endpoint: z". Try launching with --master-portr   )config
ValueErrorendpointstripr   	max_nodesr   r@   getr   _default_timeout_secondsr   )rC   rH   r   r   r   r   r   r   s           r   r   r   e   s    V]]"5
 	
 $$&HI
 	
  92FKb*8*4VW
 	
 !!JV]]&&v./D]]FFMM!fmmI./*[$
FG r   )r   loggingtypingr   r   torch.distributedr   r   r   $torch.distributed.elastic.rendezvousr   r	   r
   r   *torch.distributed.elastic.rendezvous.utilsr   __all__	getLoggerr;   r*   rL   r   r   r"   r   r   <module>rT      sp      ! : :  Q !"7
8			8	$ C+ CL 4 9J r   