o
    "j                     @   sT   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 G dd deZ
dS )    N)LauncherInterface)loggerpull_worker_logstart_local_trainersc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
CollectiveLauncherc                 C   s   || _ g | _d S )N)argsprocs)selfr    r
   l/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/distributed/fleet/elastic/collective.py__init__   s   
zCollectiveLauncher.__init__c                 C   s   t d | j}t | _tjjj	
|\}}tjjj	|| j}t|||j|j|j|d| _t| jD ]\}}t d|jj d|  q4d S )Nzcollective lauchner launch ...)training_scripttraining_script_argslog_dirZenvszlaunch proc_id:z idx:)r   infor   tempfilemkdtemptmp_dirpaddledistributedZfleetlaunchZget_cluster_infoZget_global_envsr   r   r   r   r   	enumerateprocpid)r	   r   ZclusterZpodZglobal_envsidxr   r
   r
   r   r   !   s$   


	zCollectiveLauncher.launchc                 C   s>   t d |  st d tj| jrt	| j d S d S )Nzcollective lauchner stop ...zkill process failed)
r   r   Z_terminate_procserrorospathexistsr   shutilrmtree)r	   r
   r
   r   stop6   s   

zCollectiveLauncher.stopc                 C   s:   t d | jD ]}|jr|jdkrt| q|  }|S )Nzcollective lauchner watch ...r   )r   debugr   Zlog_fnZ
local_rankr   Z_check_procs)r	   pretr
   r
   r   watch=   s   

zCollectiveLauncher.watchN)__name__
__module____qualname__r   r   r!   r%   r
   r
   r
   r   r      s
    r   )r   r   r   r   Z(paddle.distributed.fleet.elastic.managerr   Z%paddle.distributed.fleet.launch_utilsr   r   r   r   r
   r
   r
   r   <module>   s   