#!/usr/bin/env python3
# -*- coding:utf-8 -*-
################################################################
# Copyright 2023 Dong Zhaorui. All rights reserved.
# Author: Dong Zhaorui 847235539@qq.com
# Date : 2023-04-24
################################################################
import time
from mpi4py import MPI
def main():
mpi_comm = MPI.COMM_WORLD
rank = mpi_comm.Get_rank()
if rank == 0:
print("#### gather start ####")
time.sleep(1.0)
gather_start_time = time.time()
rank_list = mpi_comm.gather(rank, root=0)
print(
f"rank{rank} rank_list: {rank_list}; spend time: {time.time()-gather_start_time}"
)
if rank == 0:
print("#### gather over ####\n")
print("#### scatter start ####")
time.sleep(1.0)
scatter_start_time = time.time()
get_rank = mpi_comm.scatter(rank_list, root=0)
print(
f"rank{rank} get_rank: {get_rank}; spend time: {time.time()-scatter_start_time}"
)
if rank == 0:
print("#### scatter over ####\n")
print("#### bcast start ####")
time.sleep(1.0)
bcast_start_time = time.time()
get_rank_list = mpi_comm.bcast(rank_list, root=0)
print(
f"rank{rank} get_rank_list: {get_rank_list}; spend time: {time.time()-bcast_start_time}"
)
if rank == 0:
print("#### bcast over ####")
if __name__ == '__main__':
main()
mpi4py测试
最新推荐文章于 2024-07-31 14:30:10 发布