问题标签 [dispy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dispy - Dispy,在计算节点上启动 SharedJobCluster
我正在使用 dispy 在 python 中创建一个计算集群。我的一个用例可以通过在本身启动分布式进程的计算节点上启动一个进程来很好地解决。因此,我已经在主调度器上实现了 SharedJobCluster,也在将发送到集群的函数中实现了(这又应该启动一系列分布式进程)。但是,当启动第二个 SharedJobCluster 时,代码会挂起并且不会越过这一行(也不会显示任何错误)。
最小工作示例:
test2.py 包含:
作为参考,我目前正在同一台机器上运行 dispyscheduler.py、dispynode 和这个 python 代码。此设置有效,除非尝试启动嵌入式分发任务。
worker.log 输出包含“正在启动集群...”,但没有其他内容。
如果我检查节点的状态,它说它正在运行 1 个作业,但它永远不会完成。
sockets - 端口 51347 似乎被另一个程序使用
运行 dispy 文档中给出的示例代码
def compute(n):
import time, socket
time.sleep(n)
host = socket.gethostname()
return (host, n)
if name == 'main':
import dispy, random
cluster = dispy.JobCluster(compute)
jobs = []
for i in range(10):
# schedule execution of 'compute' on a node (running 'dispynode')
# with a parameter (random number in this case)
job = cluster.submit(random.randint(5,20))
job.id = i # optionally associate an ID to job (if needed later)
jobs.append(job)
# cluster.wait() # wait for all scheduled jobs to finish
for job in jobs:
host, n = job() # waits for job to finish and returns results
print('%s executed job %s at %s with %s' % (host, job.id, job.start_time, n))
# other fields of 'job' that may be useful:
# print(job.stdout, job.stderr, job.exception, job.ip_addr, job.start_time, job.end_time)
cluster.print_status()
我得到以下输出
2017-03-29 22:39:52 asyncoro - 带有 epoll I/O 通知器的 4.5.2 版
2017-03-29 22:39:52 dispy - dispy 客户端版本:4.7.3
2017-03-29 22:39:52 dispy - 端口 51347 似乎被另一个程序使用
然后什么也没有发生。如何释放 51347 端口?
python - Python中具有专用内存的节点进程
我正在使用 Apache 和 Django 开发一个 Web 应用程序应用程序,用户在其中与数据模型(包装到 Python 中的 C++ 实现)进行交互。
为了避免在每次用户操作后在文件或数据库中加载/保存数据,只要用户连接到应用程序,我更喜欢将数据模型保留在内存中。到目前为止,数据模型都存储在附加到 Web 服务的变量中。由于在 Apache 下运行的 Python 有时会出现奇怪的行为,我更喜欢将用户操作执行到单独的 python 进程中,今天在同一台服务器上,也许明天在不同的节点上。
我的印象是分布式计算库(dispy、dask 分布式)无法将内存连接到节点。有没有人对我可以使用哪些库有解决方案/想法?
python - Python - 显示端口 51347 似乎被另一个程序使用
我正在尝试在 dispy 页面(http://dispy.sourceforge.net/)上运行该程序,我知道这个问题与曾经提出的这个问题非常相似(端口 51347 似乎被另一个程序使用),但请不要重复提交,因为我已经尝试过那里给出的答案,但它并不能解决问题。我运行 netstat 并找不到在端口 51347 上运行的任何程序。
我尝试在几个不同的端口上运行该程序,但每次我尝试使用本地主机 IP 运行它时,它总是给我同样的错误“端口 xxxx 似乎被另一个程序使用”。我尝试将它与不同的 IP 一起使用,但它没有给我一个错误,但是代码等待来自该 IP 的输入,而不是简单地在本地运行。
有没有其他人遇到过这个问题并找到了解决方法?
python - 设置 dispy 和 SSL 的正确方法
我正在努力设置 dispy 和 SSL。以下是我设置的步骤:
要创建证书,我使用了命令:
然后我合并了两个文件:
在我的特殊情况下,我需要使用所有:调度程序(dispyscheduler)、节点(dispynode)和集群(SharedJobCluster)。
这是我提交的工作:
如果我不使用 SSL 连接,尽管使用了平台,它仍能成功工作。Linux 上的调度程序和 Windows 上的节点,反之亦然。任何组合都很好。但是当我尝试使用 SSL 时问题就来了。
以下是我用来运行测试作业的命令:
在 Linux 上
在 Windows 上
由于某些原因,这样的配置 - Windows 和 Unix 之间的连接不起作用。我经常看到这样的错误:
1.
2.
3.
不幸的是,我的技能不足以理解 dispy 或我的设置有什么问题。为什么在仅使用 Unix 系统或仅 Windows 系统的情况下它可以工作,但不能一起使用。
我还在GitHub 上提交了问题。
dispy - dispy 的全局集群对象
(1)我可以让集群对象跨机器全局,以便一旦提交作业,该作业又可以提交其他不同的较小作业?
(2) 每次我调用提交时,“计算”功能可以不同吗?
amazon-ec2 - AWS 上多个 EC2 实例之间的计算共享
我正在研究需要在多个 EC2 实例之间分配计算能力的问题。
我正在考虑矩阵乘法程序,例如具有数千行和数千列的巨大矩阵需要 GB 的 ram 和计算能力。
我有亚马逊 EC2 实例(免费合格),大约。800 MB 内存。我期待着跨多个 EC2 实例分配计算。
我不确定,但弹性负载均衡器是网络流量负载均衡器的东西,如果我错了,请纠正。
我找到了用于计算分布和并行处理的python Dispy 模块。
任何人都可以指导是否有其他方法来实现它?
python - cluster_status 回调可以提交新作业吗?
我正在开发一个在大量对象上运行的 dispy 脚本(duh)。
每个对象都有多个操作要执行——其中只有一个必须首先发生,其余的使用第一个作业的结果,并且可以按任何顺序完成。
我想,最直接的方法是做两个循环cluster.submit()
——第一个循环用于每个对象的第一个作业,第二个循环——用于所有其他对象。
但是,我想在每个对象的主要作业完成后立即开始提交后续作业——而不是等待所有其他对象完成。
这样做的正确方法是什么?特别是,我的processed
回调函数可以向同一个集群提交额外的作业吗?
python - Python 的输出流是线程安全的吗?
我正在使用 Dispy/pycos 在多台机器上运行多个作业。计算结果返回到主脚本,主脚本将它们写入一组文件——来自不同的线程。
我是否需要在我的代码中显式地同步输出操作——以防止不同线程输出的行相互混淆——或者这已经被 Python 处理好了?
到目前为止,我还没有看到这样的乱码,但是,也许,这只是运气?..
python-3.x - 使用 SSH 在多个 EC2 实例上运行 dispynode.py 似乎可行,但实际上并没有
我已经使用 cfncluster 创建了一个 EC2 实例集群,现在我需要在所有节点上运行 dispynode.py 命令。
我首先创建一个名为“workers.txt”的私有 IP 地址列表,然后运行以下 bash 命令
这似乎有效,因为我得到了每个 IP 地址的预期 dispynode 输出。例如,对于每个 IP 地址,我都会得到与此类似的输出
问题是,当我 SSH 进入节点并检查进程是否正在运行时,它不是。
而且 dispy 客户端不起作用,无法发现节点。
问题:为什么我的并行 ssh 命令没有在节点上启动程序和/或为什么进程在启动后没有保持运行