在2019年大數據與人工智能的暑期學校中,我第一次接觸到了並行編程,當時使用的是長沙超算中心的天河一號,大概同時使用過128個核心,一起來做些簡單的運算,後來也在自己的筆記本上做過4-8個線程的簡單嘗試,最近又重新撿了起來,溫習一下,並做以記錄。
1.程序代碼:
話不多所,先上代碼,畢竟Talking is cheap, show me the code!
from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
print('Hello, world! This is from process: %d' % rank)
我們將文件保存爲MPI_Helloworld.py
2.代碼介紹
1.我們首先導入mpi4py庫中的MPI模塊
from mpi4py import MPI
2.將comm(communication的簡寫)定義爲一組可以互相發送消息的進程集合
comm = MPI.COMM_WORLD
3.獲得正在調用進程的進程號
rank = comm.Get_rank()
4.各進程各自打印輸出
print('Hello, world! This is from process: %d' % rank)
3.執行
在終端執行:
mpiexec -n 4 python MPI_Helloworld.py
可以看到輸出
fire@fire-P7xxTM1:~/multi_process_thread$ mpiexec -n 4 python mpi_helloworld.py
Hello, world! This is from process: 0
Hello, world! This is from process: 1
Hello, world! This is from process: 2
Hello, world! This is from process: 3