定时开始
- 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
多进程 / 线程长时间运行
将需要运行的参数保存在一个外部文件, 而不是临时写在代码里.(待实践)
将参数乱序后分配给不同的进程 / 线程而不是顺序分配, 这样任何时刻得到的数据都有一定代表性
如果是多进程运行, 注意将 stderr 和 stdout 重定向到输出文件. 因为程序运行之后各自在自己的进程中输出, 不会打印到当前的 shell 中. 方法如下 :
- 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
- '''
来源: http://www.bubuko.com/infodetail-2987820.html