
    Αi!                     B    S SK r S SKrS SKrSSKJrJr   " S S\5      rg)    N   )
ControllerControllerModec                   6    \ rS rSr\S 5       rS rS rS rSr	g)PSController   c                    UR                   R                  [        R                  :X  d|  UR                   R                  (       da  [        UR                   R                  5      S:  d>  UR                   R                  (       d#  [        UR                   R                  5      S:  aH  UR                  R                  U R                   S35        [        R                  UR                   l        gg)Nr   z enabledTF)argsrun_moder   PS
server_numlenserverstrainer_numtrainersloggerdebug__name__)clsctxs     h/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/launch/controllers/ps.pyenablePSController.enable   s     HH!2!22xx""388##$q(xx##388$$%)JJ~X67 . 1 1CHH    c                     U R                   R                  R                  (       a6  U R                   R                  R                  (       a  U R	                  5         g U R                  5         g )N)r   r
   r   r   _build_pod_with_args_build_pod_with_master)selfs    r   	build_podPSController.build_pod&   s;    88==  TXX]]%;%;%%''')r   c           
         SU R                   R                  R                  ;   a  SnO U R                   R                  R                  n[        U R                   R                  R                  R                  S5      5      n[        U R                   R                  R                  R                  S5      5      nU R                   R                  R                  R                  S5       Vs/ s H  oDR                  U5      (       d  M  UPM     nnU R                   R                  R                  R                  S5       Vs/ s H  oDR                  U5      (       d  M  UPM     nn[        U5      n[        U5      nXx-   U R                  l        U R                  X#/5        SS Kn	U	R                  5       n
[        R                   R#                  U
5      (       a  [$        R&                  " U
5        U R                   R                  R(                  nSR+                  US   R                  S5      S   U5      nSU
UU R                   R                  R,                  S.n[/        U5       H  nU R                   R                  R                  U R                   R                  R                  X^   R                  S5      S   S	S	[        U5       U R                   R                  R                  S
.nUR1                  U5        SU 3nU R3                  UUS9  M     SnU H   nUR                  U5      (       a    O	US-  nM"     [/        U5       H  nSR5                  U5      SR5                  U5      Xn   R                  S5      S   SSUU-    [        U5       U R                   R                  R                  S.nUR1                  U5        SU 3nU R3                  UUS9  M     g s  snf s  snf )Nz	127.0.0.1,r   {}:{}:3PADDLE_GLOO_RENDEZVOUSPADDLE_GLOO_FS_PATHPADDLE_GLOO_HTTP_ENDPOINTPADDLE_WITH_GLOOr   PSERVER)PADDLE_PSERVERS_IP_PORT_LISTPADDLE_TRAINER_ENDPOINTSPADDLE_PORTPADDLE_ROLETRAINING_ROLEPADDLE_TRAINERS_NUMPOD_IP
serverlog.envslog_fileTRAINER)r,   r-   r.   r/   r0   PADDLE_TRAINER_IDr1   r2   
workerlog.)r   r
   r   nodeiplistsplitr   
startswithr   podreplicassave_pod_logtempfilemkdtempospathexistsshutilrmtree	gloo_portformat	with_gloorangeupdateadd_containerjoin)r   hostserver_endpointstrainer_endpointssr   r   r   r   rB   gloo_rendezvous_dirrI   	gloo_http
_gloo_envsier6   trainer_rank_offsets                     r   r   !PSController._build_pod_with_args,   s8   $((--///D88==##D 5 5 ; ;C @A !7!7!=!=c!BCxx}},,2237
7!<<;MA7 	 
 xx}}--33C8
8!LL<NA8 	 
 \
(m&4+?@&..077>>-..MM-.HHMM++	NN#3A#6#<#<S#A!#DiP	 '*#6)2 $ 7 7	

 z"A040E0E,0HHMM,B,B&z//4Q7(!**-.?*@)A((--**A HHZ #A3'HA9 #  "A||D!!#q(#	 # {#A039I0J,/HH5F,G'{005a8(!*(),?(?'@*-.?*@)A((--**	A HHZ #A3'HA9 $e

s   )OO?O"O"c                    [        U R                  R                  R                  5      U R                  l        U R                  R                  R
                  =(       d    SnU R                  R                  R                  U5       Vs/ s H(  nU R                  R                  R                   SU 3PM*     nnU R                  R                  R                  =(       d    SnU R                  R                  R                  U5       Vs/ s H(  nU R                  R                  R                   SU 3PM*     nn[        R                  " U R                  R                  U R                  R                  UUU R                  R                  R                  R                  U R                  R                  R                  5       S.5      nU R                   R#                  SU R$                  R&                   S3U R                  R                  UU R$                  R(                  U R                  R                  5      u  pxU R                  R*                  R-                  SU 35        U V	s/ s H  n	[        R.                  " U	5      PM     nn	U R1                  U5        U V	V
s/ s H  oS     H  oPM     M     nn	n
U V	V
s/ s H  oS     H  oPM     M     nn	n
[3        US U  V	s/ s H  n	[5        U	S   5      PM     sn	5      n[3        US U  V	s/ s H  n	[5        U	S   5      PM     sn	5      nXR                  l        X-   U R                  l        S	S KnUR9                  5       n[:        R<                  R?                  U5      (       a  [@        RB                  " U5        US	   S
   nSRE                  US	   RG                  S5      S	   U5      nSUUU R                  R                  RH                  S.n[K        U5       H  n	U R$                  R(                   SRM                  U5      SRM                  U5      XU-      RG                  S5      S   SS[5        U5       U R                  R                  R                  S.nURO                  U5        SU	 3nU RQ                  UUS9  M     [K        U5       H  n	U R$                  R(                   SRM                  U5      SRM                  U5      XU-      RG                  S5      S   SSX-    [5        U5       U R                  R                  R                  S.	nURO                  U5        SU	 3nU RQ                  UUS9  M     g s  snf s  snf s  sn	f s  sn
n	f s  sn
n	f s  sn	f s  sn	f )Nr   r$   )namerankr   r   dtyperI   /z/infozsync peers done r   r   r   rI   r#   r%   r&   r"   r+   )PADDLE_NNODESr,   r-   r.   r/   r0   r1   r2   r3   r4   r7   )	r`   r,   r-   r.   r/   r0   r8   r1   r2   r9   ))intr   r
   r]   r?   r   r:   get_free_portsr;   r   jsondumpsr\   devicer^   get_free_portmaster
sync_peersjobidr@   r   r   loadsrA   sumr   rB   rC   rD   rE   rF   rG   rH   rJ   r=   rK   rL   rO   rM   rN   )r   r   pr   r   r   data	peer_listr]   rW   jrQ   rR   server_rank_offsetrY   rB   rT   rI   rU   rV   rX   r6   s                         r   r   #PSController._build_pod_with_masteru   s   DHHMM../XX]]--2
 XX]]11*=
= xx}} !%= 	 
 hhmm//41 XX]]11+>
> xx}} !%> 	 

 zz"$--33!XX]]88:	
 ++00}E"HHMMHHHHMM
	 	 0<=,56IqTZZ]I	6)$'0Gy!I,QA,AyG(1I	1Z=aQ=Q	I !Yu=M!N=M#a	l"3=M!NO!)25D)9:)9AS:)9:
 &4&..077>>-..MM-.aL-	NN#3A#6#<#<S#A!#DiP	 '*#6)2 $ 7 7	

 z"A$(HH$5$5#6039I0J,/HH5F,G/4F0FGMM    )!**-.?*@)A((--**A HHZ #A3'HA9 #" {#A$(HH$5$5#6039I0J,/HH5F,G05H1HIOO    )!*()(?'@*-.?*@)A((--**A HHZ #A3'HA9! $"	E


4 7 HI "O:s*   	/U&
/U++ U0#U5U;(VV N)
r   
__module____qualname____firstlineno__classmethodr   r   r   r   __static_attributes__rs   r   r   r   r      s&     *G:Rzr   r   )rc   rD   rG   
controllerr   r   r   rs   r   r   <module>rz      s!     	  2Y: Yr   