下面是我zhe这几天在搭建转录组流程时,考虑到要处理多个样本的时候,由于是同样的操作,使用一个cpu的话太浪费时间,因此,想到了多进程,这里只是写一些感悟,具体操作网上有哈
主要使用multiprocessing这个包,它里面有个类叫Pool,中文叫进程池
我在这里只是很形象的介绍下Pool这个类的功能:
举例:
现在有一场吃饭比赛,每人一锅饭, 一个人要吃完一锅饭要很长时间, 但是这时候有个裁判Pool来了,他说,最多可以两个人吃一锅饭(Pool(2)),这时候,吃饭这个任务所耗的时间就少很多啦。
所以现在我有很多人的样本,都需要比对到人的参考序列上,Pool()就可以定义你可以同时允许几个样本与参考序列(可以允许几个进程再跑)比较,而其他的样本则等到进程池中有空位了(有进程跑完),自动补充进去,时刻保持进程池是满的。
Pool(2):当前允许两个进程再跑