扩展

pywps有一些扩展来增强其在特殊情况下的可用性,例如在高性能计算(hpc)中心运行web处理服务。默认情况下,这些扩展被禁用。他们需要修改配置,并有额外的软件包。扩展名为:

  • 在hpc计算中心使用批作业调度程序(分布式资源管理)。

  • 使用容器解决方案,如 Docker 在云计算基础设施中。

作业计划程序扩展

默认情况下,pywps在运行pywps服务的同一台计算机上执行所有进程。使用pywps调度程序扩展,可以将异步进程的执行委托给如下调度程序系统 SlurmGrid EngineTORQUE . 通过启用此扩展,可以使用高性能计算(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和调度程序之间的通信是如何工作的。

_images/pywps-scheduler-extension_interactions.png

pywps调度程序扩展的交互图。

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

_images/pywps-slurm-demo-architecture.png

使用slurm的pywps调度程序扩展的示例。

码头集装箱分机

待处理

这个分机在我们的愿望单上。in可用于封装和控制进程的执行。它还增强了云计算基础设施中web处理服务的用例。