运行 许多 python 脚本实例的有效方法,每次都进行一些更改
Efficient way to run many instances of python script with a few changes each time
我有一个脚本(在 PyNEST 中模拟神经元网络),我想 运行 它的几个实例,每次只更改几个参数。模拟时间不是问题(大约 5 秒长),但我想 运行 相当多的模拟。
我现在做的是使用 'sys' 和 'sys.argv[:]' 传递我的参数,然后我在 4 个不同的终端(终结器)中复制粘贴批次。
python myScript.py arg1 arg2 arg3
python myScript.py arg4 arg5 arg6
...
我想知道的是,这种方式是否有效,或者我是否在浪费大量 CPU 精力来做一些可以用更简单的方式完成的事情。
如果执行的工作足够重要,足以证明设置多个进程所需的开销是合理的,您可以使用 multiprocessing module.
创建一个工作进程池
将您的脚本转换为具有主要功能的模块,以便 运行
python myScript.py arg1 arg2 arg3
从命令行等同于运行
import myScript
myScript.main(arg1, arg2, arg3)
将 myScript
设为可导入模块后,您就可以编写另一个脚本
使用所需参数轻松调用 myScript.main
。
我有一个脚本(在 PyNEST 中模拟神经元网络),我想 运行 它的几个实例,每次只更改几个参数。模拟时间不是问题(大约 5 秒长),但我想 运行 相当多的模拟。
我现在做的是使用 'sys' 和 'sys.argv[:]' 传递我的参数,然后我在 4 个不同的终端(终结器)中复制粘贴批次。
python myScript.py arg1 arg2 arg3
python myScript.py arg4 arg5 arg6
...
我想知道的是,这种方式是否有效,或者我是否在浪费大量 CPU 精力来做一些可以用更简单的方式完成的事情。
如果执行的工作足够重要,足以证明设置多个进程所需的开销是合理的,您可以使用 multiprocessing module.
创建一个工作进程池将您的脚本转换为具有主要功能的模块,以便 运行
python myScript.py arg1 arg2 arg3
从命令行等同于运行
import myScript
myScript.main(arg1, arg2, arg3)
将 myScript
设为可导入模块后,您就可以编写另一个脚本
使用所需参数轻松调用 myScript.main
。