o
    …wÖi)  ã                   @   s6   d dl Z d dlmZ dd„ Zdd„ Zdefdd	„ZdS )
é    N©Ú
get_envintc                  C   sx   t ddƒ} | dur| dkS t ddƒ}|dur|dkS t ddƒ}|dur'|dkS t dt ddƒƒ}t ddƒ}|dko;|dkS )	zWHelper function to determine if the current process is global_rank 0 (the main process)ÚRANKNr   ÚSLURM_PROCIDÚOMPI_COMM_WORLD_RANKÚ	NODE_RANKÚ
GROUP_RANKÚ
LOCAL_RANKr   )ÚrankÚ
slurm_rankÚmpi_rankÚ	node_rankÚ
local_rank© r   úP/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/nemo/utils/get_rank.pyÚis_global_rank_zero   s   



r   c                   C   s   t ƒ rdS tj ¡ S )zmHelper function that returns torch.distributed.get_rank() if DDP has been initialized otherwise it returns 0.r   )r   ÚtorchÚdistributedÚget_rankr   r   r   r   r   /   s   
r   Úreturnc                   C   s   t j ¡ sdS t j ¡ d S )z*Get the last rank in the distributed groupr   é   )r   r   Úis_initializedÚget_world_sizer   r   r   r   Úget_last_rank8   s   
r   )r   Únemo.utils.env_var_parsingr   r   r   Úintr   r   r   r   r   Ú<module>   s
   	