扩展¶
pywps有一些扩展来增强其在特殊情况下的可用性,例如在高性能计算(hpc)中心运行web处理服务。默认情况下,这些扩展被禁用。他们需要修改配置,并有额外的软件包。扩展名为:
在hpc计算中心使用批作业调度程序(分布式资源管理)。
使用容器解决方案,如 Docker 在云计算基础设施中。
作业计划程序扩展¶
默认情况下,pywps在运行pywps服务的同一台计算机上执行所有进程。使用pywps调度程序扩展,可以将异步进程的执行委托给如下调度程序系统 Slurm , Grid Engine 和 TORQUE . 通过启用此扩展,可以使用高性能计算(hpc)中心常见的现有调度系统来处理处理工作负载。
备注
pywps进程实现不会使用调度程序扩展进行更改。
若要激活此扩展,您需要编辑 pywps.cfg
配置文件并进行以下更改:
[processing]
mode = scheduler
调度程序扩展使用 DRMAA 库与不同的调度程序系统进行对话。使用pip:安装附加的python依赖项:
$ pip install -r requirements-processing.txt # drmaa
如果您正在使用 conda 软件包管理器您可以使用安装依赖项:
$ conda install drmaa dill
包裹 dill 是python pickle模块的增强版本,用于序列化和反序列化python对象。
警告
此外,您需要在运行pywps的机器上安装和配置调度程序系统的drmaa模块。按照 DRMAA 文档和按计划程序系统安装指南。
备注
见一 例子 如何将此扩展与 docker demo .
备注
COWS WPS 具有Sun网格引擎(SGE)的调度程序扩展。
pywps与调度系统的交互¶
pywps调度器扩展使用python dill 用于将处理作业转储到/从文件系统加载的库。在调度程序系统上执行的批处理脚本调用pywps joblauncher
使用转储作业状态编写脚本并执行作业(调度程序上没有运行wps服务)。作业状态在文件系统上更新。pywps服务和 joblauncher
脚本使用相同的pywps配置。调度器假设pywps服务器与调度器系统有一个共享文件系统,因此可以在同一个文件位置找到xml状态文档和wps输出。请参阅交互图pywps和调度程序之间的通信是如何工作的。

pywps调度程序扩展的交互图。¶
下图显示了将调度程序扩展与slurm一起使用的示例。

使用slurm的pywps调度程序扩展的示例。¶
码头集装箱分机¶
待处理
这个分机在我们的愿望单上。in可用于封装和控制进程的执行。它还增强了云计算基础设施中web处理服务的用例。