TLDR:是否可以使用this代码或类似方法从队列中获取输入以启动足够的可执行文件,以始终在本地网络上的不同计算机上始终运行最大数量的作业?它不一定基于python,但是python是我最熟悉的语言。
我不是网络工程师,也不是真正的程序员,但是我有一点Python经验。我正在尝试在本地网络上建立一个分布式计算系统,以将大型模拟分解为多个块,最终将所有输出发送到 中心位置。使用发现的客户端和服务器代码here,我设法使多台计算机对话,并且能够在连接的计算机上启动一个可执行文件。问题是代码的当前结构方式,它等待某种退出代码并被锁定,直到收到该退出代码为止。我希望能够检查可用CPU的数量,并从队列中为每台计算机上的每个CPU提供一个“作业”。理想情况下,将有一种方法可以始终运行x个作业。因此,如果机器1有4个可用CPU,机器2有3个可用CPU,机器3有1个可用CPU,则8个作业将一直运行,直到队列为空。模拟中有逻辑,允许用户使用命令行参数指定要运行的部分。因此,实际上唯一的任务是将这些参数从队列传递到每台计算机上的命令窗口,直到其所有CPU都繁忙为止。每组命令行参数都对应于启动一个可执行文件。
不是所有的机器都安装了python,但是我找到了一种将客户端脚本转换为可执行文件的方法,可以将其放到所有机器上,并且似乎运行良好。
可能是我一无所知,不知道自己在寻找什么,但这是我发现最有效的方法。我不能使用SSH或任何付费软件。
Here是指向github存储库创建者youtube页面的链接,以逐步介绍他如何编写代码。