pegasusWMS的jupyter范例

接上一篇安装,这一篇是官网给的在docker上的实例

教程

安装docker就省略了,之前装了,接下来是官网给的在docker上的示例

docker pull pegasus/tutorial:5.0.0
docker run --privileged --rm -p 9999:8888 pegasus/tutorial:5.0.0

然后就访问该页面,运行1,2两个示例。http://xxx.xxx.xxx.xxx:9999/tree?           密码:scitech

访问页面后,点击该按钮运行所有代码块

 

第一节 API介绍

最终效果如下,Diamond工作流,矩形代表输入/输出文件,椭圆代表计算作业,箭头表示依赖

Pegasus指定的抽象工作流描述是可移植的,并且通常不包含执行作业的物理输入文件。pegasus在过程中使用三个信息目录,过程如下。

1.印入PythonAPI,详细描述在https://pegasus.isi.edu/documentation/reference-guide/api-reference.html

from Pegasus.api.mixins import EventType, Namespace
from Pegasus.api.properties import Properties
from Pegasus.api.replica_catalog import File, ReplicaCatalog
from Pegasus.api.site_catalog import (
    OS,
    Arch,
    Directory,
    FileServer,
    Grid,
    Operation,
    Scheduler,
    Site,
    SiteCatalog,
)
from Pegasus.api.transformation_catalog import (
    Container,
    Transformation,
    TransformationCatalog,
    TransformationSite,
)
from Pegasus.api.workflow import Job, SubWorkflow, Workflow
from Pegasus.client._client import PegasusClientError


#或者是引入全部
from Pegasus.api import *

2.配置日志

若为了看工具(如pegasus-plan,pegasus-analyzer)的输出,则需要配置日志。

from pathlib import Path

import logging

logging.basicConfig(level=logging.DEBUG)

3.配置Pegasus属性

可以使用Properties()生成pegasus.properties文件,如果可以查看最常用的属性列表,可以使用Properties.ls(prefix)。如果给出pegasus-plan文件,则pegasus-plan将在cwd中查找pegasus.properties文件。

# --- Properties ---------------------------------------------------------------
props = Properties()
props["pegasus.monitord.encoding"] = "json"                                                                    
props["pegasus.catalog.workflow.amqp.url"] = "amqp://friend:donatedata@msgs.pegasus.isi.edu:5672/prod/workflows"
props["pegasus.mode"] = "tutorial" # speeds up tutorial workflows - remove for production ones
props.write() # written to ./pegasus.properties 
Properties.ls("condor.request")

4.创建副本目录(指定初始输入文件)

提供给工作流的任何初始输入文件都应在ReplicaCatalog中指定。该对象告诉Pegasus每个输入文件的物理位置。受限,我们创建一个文件,它将作为此工作流的输入。

with open("f.a", "w") as f:
    f.write("This is the contents of the input file for the diamond workflow!")

./f.a将在此工作流程中使用,因此我们创建了一个相应的File对象,也可以用下面的方法将元数据添加到文件中。

接下来,创建一个ReplicaCatalog对象,以便可以对每个输入文件的物理位置进行分类。这是使用ReplicaCatalog.add_replica(site,file,path)函数完成的。由于文件f.a在提交的主机上,使用local作为位置参数。然后,File对象作为file参数。最后,pathlib.Path可以作为绝对路径。

默认情况下,如果已给出pegasus-plan的副本,它将在cwd中查找一个plicates.yml文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值