计算机上n,在n上的另一台计算机上启动进程

我需要启动一系列python脚本和/或其他windows可执行文件。其中一些需要Windows系统,另一些需要Linux机器。

目前有指定的机器来运行操作系统相关的程序。所以我知道我想从哪里开始哪个程序。

有没有办法从python脚本启动python脚本(或windows可执行文件),在本地网络上,在另一台计算机上(例如运行192.168.0.101:/dir/python_script_123.py)?

然后运行各种程序的脚本可能会在伪代码中看起来像这样。。linuxip = 192.168.0.101

linuxparam = "required parameter"

winip = 192.168.0.201

winparam = "required parameter"

#option 1 (run all), 2(run linux only), 3(run windows only), 4(run local only)

option = 1

if option == 1:

magic_things.run("linuxip:/dir/linux_script.py" + linuxparam)

magic_things.run("winip:C:\\dir\\windows_prog.exe" + winparam)

subprocess.call(["/dir/local_script.py","parameter"])

subprocess.call(["/dir/another_local_script.py","parameter"])

elif option ==2:

[...]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python multiprocessing 模块主要是为了实现在单台计算机上的并行计算。如果要在多台计算机上进行并行计算,需要使用分布式计算框架,例如 Celery,Dask 或者 Ray 等等。这些分布式计算框架可以将计算任务分发到多个计算节点上执行,并通过网络通信协调和管理这些节点的计算。 下面是使用 Celery 进行分布式计算的一个简单示例: 1. 首先,需要在所有计算节点上安装 Celery 和消息队列中间件,例如 RabbitMQ。可以使用 pip 命令来安装这些依赖: ```bash pip install celery sudo apt-get install rabbitmq-server # 安装 RabbitMQ ``` 2. 定义一个 Celery 任务,例如下面这个示例: ```python from celery import Celery app = Celery('tasks', broker='amqp://guest@localhost//') @app.task def add(x, y): return x + y ``` 这个任务接受两个参数 x 和 y,返回它们的和。 3. 启动 Celery worker,这个命令需要在每个计算节点上运行: ```bash celery -A tasks worker --loglevel=info ``` 这个命令会启动一个 Celery worker 进程,它会连接到消息队列中间件,并等待任务的分发。 4. 在主节点上调用 Celery 任务,例如下面这个示例: ```python from tasks import add result = add.delay(4, 4) print(result.get()) ``` 这个示例首先导入之前定义的 Celery 任务,然后通过调用 add.delay() 来分发任务。这个方法会立即返回一个 AsyncResult 对象,可以通过调用它的 get() 方法来等待任务执行完成并获取结果。 以上是一个简单的 Celery 示例,实际的应用中可能需要更复杂的配置和调试。 ### 回答2: 在多台计算机上实现Python的多进程并行,可以通过网络通信和分布式计算来完成。以下是一种基本的配置方案: 1. 配置网络:首先确保所有计算机连接到同一个局域网或互联网。确保计算机之间可以相互通信,例如通过ping命令测试连通性。 2. 安装Python和相关依赖:在每台计算机上安装Python解释器,并安装multiprocessing模块。可以使用pip命令安装。同时,还需要安装一些用于网络通信和分布式计算的库,例如socket、pickle和paramiko。 3. 编写代码:编写分布式计算的代码。在代码中使用multiprocessing模块创建多个进程。可以使用进程间通信机制,例如Queue或Pipe,来在不同计算机之间传递数据。在代码中远程调用其他计算机上的函数或方法,可以使用paramiko库来实现。 4. 配置计算机间的通信:为了在多台计算机之间传输数据,需要为每台计算机分配唯一的IP地址。可以使用socket库中的Socket类创建套接字,以实现计算机间的通信。也可以使用paramiko库建立SSH连接,并通过该连接发送数据。 5. 启动进程:在每台计算机上运行相同的Python脚本,指定不同的参数或环境变量,以区分不同的进程。可以使用命令行方法或分布式计算框架,例如Celery、Dask或Pyro等。 在配置完成后,可以启动计算机上的进程并开始并行计算。这些进程将在多台计算机上同时运行,并利用分布式计算的能力,提高计算效率。 需要注意的是,配置过程可能因计算机操作系统的不同而略有差异。在配置过程中,需根据实际环境进行适当的调整。 ### 回答3: 要在多台计算机上实现Python的多进程并行,可以使用分布式计算框架来实现,比如`Celery`和`mpi4py`。下面我将分别介绍它们的配置方法。 1. 使用Celery: - 安装Celery:在每台计算机上使用命令 `pip install celery` 安装Celery库。 - 创建任务:定义一个Python函数作为你的任务,并使用`@task`装饰它,例如: ```python from celery import Celery app = Celery('myapp') @app.task def my_task(arg1, arg2): # 你的任务逻辑代码 return result ``` - 启动Celery worker和broker:在每台计算机执行如下命令启动Celery worker进程: ```bash celery -A myapp worker --loglevel=info ``` 在一台计算机启动一个Celery broker进程(如RabbitMQ或Redis),并在配置中指定broker的位置。 - 调用任务:在你的主程序中调用任务,例如: ```python from myapp import my_task result = my_task.delay(arg1, arg2) # 异步调用任务 ``` 2. 使用mpi4py: - 安装mpi4py:在每台计算机上安装mpi4py库,执行命令 `pip install mpi4py`。 - 编写并行程序:使用mpi4py的API在多台计算机上编写并行程序,例如: ```python from mpi4py import MPI comm = MPI.COMM_WORLD size = comm.Get_size() rank = comm.Get_rank() if rank == 0: # 主节点逻辑代码 data = ... else: # 从节点逻辑代码 data = ... # 广播数据 data = comm.bcast(data, root=0) # 并行计算 result = ... # 汇总结果 results = comm.gather(result, root=0) ``` - 启动并行程序:在主节点上执行命令 `mpirun -n <num_processes> python my_program.py` 启动并行程序,其中`<num_processes>`为节点数量。 以上是使用Celery和mpi4py两种方法在多台计算机上实现Python的多进程并行的简要说明。具体的配置和代码实现还需要根据你的具体需求和环境来进行详细调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值