在云服务器上执行高性能计算的时候,如果需要画图或者其余图形化界面的任务,则需要将数据下载到本地。
在本地执行一个for循环,每执行一次就访问一次下载,实现与服务器的即时通讯,并下载。
考虑到ssh是全局同步,所以利用rsync,可是实现增量同步的功能,从而使得下载速度变快。如下:
import time
import os
# 获取当前路径
plot_dir = os.getcwd()
# 创建link路径
link_dir = plot_dir + '/link'
if not os.path.exists(link_dir):
os.mkdir(link_dir)
for i in range(4):
# 下载文件
time1 = time.time()
# 自动获取路径
os.system('rsync -avz --delete --link-dest {} \
***@***:/share/home/***/results \
{} '.format(link_dir, plot_dir))
# 画图
time2 = time.time()
print('rsync 花费的时间: {}'.format(time2-time1))
利用python中的os模块,for循环执行一次,就同步一次,从而达到在程序运行时同步数据的效果。
画图的代码可以加到for循环后面,从而实现类似本地运行的效果