gloo_init_parallel_env¶
- paddle.distributed. gloo_init_parallel_env ( rank_id, rank_num, server_endpoint ) [source]
-
Initialize parallel environment with gloo for cpu only.
- Parameters
-
rank_id(int (-) –
rank; (required) - the index of current) –
rank_num (-) –
server_endpoint (-) – port format;
- Returns
-
None
Examples
>>> import paddle >>> import multiprocessing >>> from contextlib import closing >>> import socket >>> port_set = set() >>> def find_free_port(): ... def _free_port(): ... with closing(socket.socket(socket.AF_INET, ... socket.SOCK_STREAM)) as s: ... s.bind(('', 0)) ... return s.getsockname()[1] ... while True: ... port = _free_port() ... if port not in port_set: ... port_set.add(port) ... return port >>> def test_gloo_init(id, rank_num, server_endpoint): ... paddle.distributed.gloo_init_parallel_env( ... id, rank_num, server_endpoint) >>> def test_gloo_init_with_multiprocess(num_of_ranks): ... jobs = [] ... server_endpoint = "127.0.0.1:%s" % (find_free_port()) ... for id in range(num_of_ranks): ... p = multiprocessing.Process( ... target=test_gloo_init, ... args=(id, num_of_ranks, server_endpoint)) ... jobs.append(p) ... p.start() ... for proc in jobs: ... proc.join() >>> if __name__ == '__main__': ... # Arg: number of ranks (processes) ... test_gloo_init_with_multiprocess(2)