并行计算
在很多科学计算中,并行计算可以极大的缩短计算时间,提高资源的利用率。如果配合服务器、超算中心,并行计算更是不可或缺。博主一个Fotran程序,同样的计算过程,单核计算费时50h,不过改变代码,利用MPI并行,直接15核跑起来,就只需要2000s。这里就并行计算Mark一下
Fortran/C
博主一般使用Fortran,使用的并行计算接口是MPI,不过这个C语言也是一样的。
Python
Python并行计算相对来讲就简单多了。
threading
threading模块的Thread通过多线程实现了并行计算。
1 | import threading |
- generate a Thread object
1 | def run(num) |
- Other Method
1 | threading.currentThread() # 返回当前的线程变量。 |
multiprocessing
python的多线程无法利用多核优势,多进程各自内存互不干预,在io计算时有很多好处。
- Import
1 | from multiprocessing import Process |
- Usage
1
2
3
4
5
6
7
8
9
10
11def run(name):
print(name)
p1=Process(target=run,args=('anne',)) #必须加,号
p2=Process(target=run,args=('alice',))
p3=Process(target=run,args=('biantai',))
p4=Process(target=run,args=('haha',))
p1.start()
p2.start()
p3.start()
p4.start()
1 | class Run(Process): |
- Method
同样Process也有join方法
Comments