首页 > 其他 > 详细

【lab】常规操作/注意事项

时间:2019-03-15 10:06:24      阅读:143      评论:0      收藏:0      [点我收藏+]

定时开始

  • bash

echo "python run.py" | at 4:00

atq   # get job ids

at -d <job-id> # cancel job

数据信息(time stamp, entries, method, notes, etc)

任何分布式环境都适用的一个风格:每个文件保存自己的header,而不是用一个中央索引来整合和记录。

因此最有效的整合零散实验数据的方法,是在每一个的首行记录详细信息,并且标注好各个数据项。

测试

命名一律:test_

方便git提交的时候写入.gitignore

多进程/线程长时间运行

  1. 将需要运行的参数保存在一个外部文件,而不是临时写在代码里。(待实践)

  2. 将参数乱序后分配给不同的进程/线程而不是顺序分配,这样任何时刻得到的数据都有一定代表性

  3. 如果是多进程运行,注意将stderr和stdout重定向到输出文件。因为程序运行之后各自在自己的进程中输出,不会打印到当前的shell中。方法如下 https://stackoverflow.com/questions/1501651/log-output-of-multiprocessing-process

from multiprocessing import Process
import os
import sys

def info(title):
    print title
    print 'module name:', __name__
    print 'parent process:', os.getppid()
    print 'process id:', os.getpid()

def f(name):
    sys.stdout = open(str(os.getpid()) + ".out", "w")
    info('function f')
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    q = Process(target=f, args=('fred',))
    q.start()
    p.join()
    q.join()

# output
'''
$ ls
m.py
$ python m.py
$ ls
27493.out  27494.out  m.py
$ cat 27493.out 
function f
module name: __main__
parent process: 27492
process id: 27493
hello bob
$ cat 27494.out 
function f
module name: __main__
parent process: 27492
process id: 27494
hello fred

'''

【lab】常规操作/注意事项

原文:https://www.cnblogs.com/manqing/p/10522160.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!