我想在计算集群上使用ipython parallel执行作业。设置东西都相对简单,但我将执行的一些工作包括对多线程应用程序(生物信息学)的子进程调用。有一种简单的方法可以告诉ipython多个内核或整个引擎正在被单个python调用所占用吗?更一般地说,我想跟踪使用和可用的资源,以便我可以运行异构作业(内存要求,核心要求)。Ipython并行和多核进程
1
A
回答
3
IPython不会为单个任务执行任何资源分配。所有的资源分配都是在引擎创建时完成的。例如,如果您的作业已经完全支持多线程并且可以感知多核,那么您可能不希望每个物理机器使用多个IPython引擎。如果你的工作是单线程的,那么每个CPU核心一个引擎是合乎逻辑的。如果您的任务在多个非独占资源上受IO限制,那么您可能需要比内核更多的引擎。
如果你的工作是高度异构的(例如,一些任务被限制在一个线程中,而其他任务将愉快地使用整个机器),那么你可能想要安排一些更复杂的调度。给出这个尝试的两条有用的信息是创建引擎子集的视图。例如,对于集群中的每台机器只有一台发动机的负载平衡和直接的看法:
import socket
host_map = client[:].apply_async(socket.gethostname).get_dict()
r = { v:k for k,v in host_map.items() }
one_id_per_machine = list(r.values())
one_per_machine = client[one_id_per_machine]
lb_per_machine = client.load_balanced_view(one_id_per_machine)
而另一种是graph-based dependencies,你可能会使用它来创建壁垒,允许一个任务被提交阻止他人到其他引擎。
相关问题
- 1. 来自多个进程的并行GPU内核执行
- 2. atom.io,氢气和ipython远程(ssh)内核
- 3. 向GNU并行中的并行运行进程添加更多内核
- 4. 多个进程并行启动CUDA内核
- 5. 并行和多核处理R中
- 6. 如何使用Nodejs多CPU核心进行多进程?
- 7. 打印到IPython并行进程中的标准输出
- 8. 四核和VM上的并行编程?
- 9. ipython笔记本中有多少内核
- 10. 关于CPU核心数量的多线程和并行度
- 11. 并行和多核编程有什么区别?
- 12. ipython并行和自己的类
- 13. IPython并行和地图性能
- 14. 多线程和多核心
- 15. 多核和多线程
- 16. 如何在同一个内核上并行多次运行相同的进程?
- 17. 使用AWS上的doRedis和doMC进行R中的多核/并行仿真EC2
- 18. 内核已死 - ipython
- 19. Ipython内核重启
- 20. 重置ipython内核
- 21. iPython从Windows qtconsole ssh到远程iPython内核
- 22. 内核重启运行中的IPython + PyMC
- 23. 使用python的多处理和进程并行编程defunc
- 24. 无法杀死ipython进程
- 25. 并行进程
- 26. 并行进程
- 27. ipython并行集群并行装饰器和高阶函数
- 28. 使用openMP进行多核处理vs多线程
- 29. 传递类到iPython并行
- 30. IPython的并行LoadBalancedView GIL