echo "python run.py" | at 4:00
atq # get job ids
at -d <job-id> # cancel job
任何分布式环境都适用的一个风格:每个文件保存自己的header,而不是用一个中央索引来整合和记录。
因此最有效的整合零散实验数据的方法,是在每一个的首行记录详细信息,并且标注好各个数据项。
命名一律:test_
方便git提交的时候写入.gitignore
将需要运行的参数保存在一个外部文件,而不是临时写在代码里。(待实践)
将参数乱序后分配给不同的进程/线程而不是顺序分配,这样任何时刻得到的数据都有一定代表性
如果是多进程运行,注意将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
'''
原文:https://www.cnblogs.com/manqing/p/10522160.html