如果是拥有大型机的研究生,可不看本章节,本章主要针对没有大型机,但是有多台闲置低性能电脑的人员。 在我之前的工作中,发现我的电脑不能胜任计算数据的工作,这是一台intel 6300HQ处理器仅有8GB内存的笔记本电脑,但是非常苦恼无法使用该电脑处理很大的数据,比如当时一张geotif格式的地貌数据,他的大小为1.2G,当我使用rioxarray将他读取之后,只要我进行任何操作,立即将会内存溢出。不过后来发现xarray支持使用dask的懒惰(lazy)模式进行加载,不过当时并不清楚具体的运行过程。 今年在学习机器学习的过程中,自然需要对电脑资源进行合理的调配,不然无法完成学习,大容量数据处理在Python环境下常用的有dask、ray等,但是既要支持分布式计算,又可以和xarray、pandas等粘合以对接气象数据格式,这个时候就不得不提到前面的dask这个支持分布式计算的库包,而这个库支持使用者建立本地的分布式集群以进行科学计算。
scheduler:控制台,分为单台电脑控制台和分布式控制台,在一次分布式集群的建立过程中一般只新建一个 worker:工作进程,每台电脑可启动的工作进程数,一般小于当前电脑的核数。英特尔的大小核设计可能使工作进程数少于核数。 clinet:客户端,在jupyter notebook中链接前端和控制台的控件
在当前性能最好的电脑上,打开andconda prompt,进入命令行界面,激活安装了dask的虚拟环境:

随后输入dask scheduler

命令行弹出启动指示语,记录下Scheduler at: tcp://......的tcp地址。 随后重新启动一个命令行界面,同样激活虚拟环境,输入dask worker tcp://......,该tcp地址即前文scheduler激活后记录的地址,随后命令行弹出注册成功

在其他将要并入本地集群的电脑上,同样打开andconda prompt,进入命令行界面,激活安装了dask的虚拟环境,重复dask worker注册

回到scheduler命令行界面,可发现新增注册成功语句:

新增两条工作进程启动的提示
随后启动jupyter,并新建客户端,客户端地址就是scheduler界面给出的tcp地址。
from dask.distributed import Client
client=Client('192.162.0.103:8786')

这样我们就拥有了2个工作进程,221GB内存的本地集群。理论上可以对更多的电脑进行工作进程的注册。不过前提是在同一局域网中。
END
声明:欢迎转载、转发。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及内容、版权和其他问题,请联系小编处理。