
    Vpf	                    d    d dl mZ d dlZd dlmZ dZdZdZdZdZ	d	Z
 G d
 dej                  ZdS )    )annotationsN)clustersSLURM_JOB_IDSLURM_STEP_NODELISTSLURM_NTASKSSLURM_PROCIDSLURM_LOCALIDSLURM_STEP_NUM_NODESc                      e Zd ZU dZded<   edd            Zedd	            Zedd            Zedd            Z	edd            Z
dS )SlurmClusterslurmstrnamereturnboolc                (    t           t          j        v S N)_JOBID_PARAMosenvironclss    _/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/_src/clusters/slurm_cluster.pyis_env_presentzSlurmCluster.is_env_present   s    2:%%    timeout_secs
int | Nonec                  	 t          t          j        t                             dz  dz   }t          j        t                   }ddht          fdt          |          D             t          |                    }|t          |          k    s||         dk    r|d |          d| S |d |         }||dz   d          }ddh	t          	fd	t          |          D             d           }| |d |          d| S )
Ni   i   ,[c              3  *   K   | ]\  }}|v 	|V  d S r    ).0ichdelimss      r   	<genexpr>z7SlurmCluster.get_coordinator_address.<locals>.<genexpr>.   s+      EEeafEEr   :   -c              3  *   K   | ]\  }}|v 	|V  d S r   r"   )r#   r$   r%   delims2s      r   r'   z7SlurmCluster.get_coordinator_address.<locals>.<genexpr>5   s+      HH51b"--Q----HHr   )intr   r   r   
_NODE_LISTnext	enumeratelen)
r   r   port	node_listindprefixsuffixind2r&   r,   s
           @@r   get_coordinator_addressz$SlurmCluster.get_coordinator_address#   s    rz,'((504EFD 
:&I3ZF
EEEE	) 4 4EEEs9~~
V
VC
c)nn	## 5 5DSD/**D***4C43q566"*HHHHYv%6%6HHH$OO0&$-00$000r   r-   c                J    t          t          j        t                             S r   )r-   r   r   _PROCESS_COUNTr   s    r   get_process_countzSlurmCluster.get_process_count8   s    rz.)***r   c                J    t          t          j        t                             S r   )r-   r   r   _PROCESS_IDr   s    r   get_process_idzSlurmCluster.get_process_id<   s    rz+&'''r   c                J    t          t          j        t                             S r   )r-   r   r   _LOCAL_PROCESS_IDr   s    r   get_local_process_idz!SlurmCluster.get_local_process_id@   s    rz+,---r   N)r   r   )r   r   r   r   )r   r-   )r   r   )__name__
__module____qualname__r   __annotations__classmethodr   r8   r;   r>   rA   r"   r   r   r   r      s         $& & & ;& 1 1 1 ;1( + + + ;+ ( ( ( ;( . . . ;. . .r   r   )
__future__r   r   jax._srcr   r   r.   r:   r=   r@   
_NUM_NODES
ClusterEnvr   r"   r   r   <module>rK      s    # " " " " " 				      "
# #
'. '. '. '. '.8& '. '. '. '. '.r   