我对Taverna和Abaqus都很陌生,但我试图在一台HPC上使用Taverna中的一个“工具”来运行Abaqus模型。如果我已经有了我的模型文件并在HPC上输入,这就很好了,但是我需要一种方法来动态地上传Taverna中的文件(试图通用地包装Abaqus模型)。
我尝试添加一个输入端口,它接受一个文件列表,但我不知道如何将它复制到我为该工具设置的“位置”。一个beanshell服务是答案吗?或者我可以在执行abaqus模型之前遍历文件列表并复制它们吗?
谢谢
发布于 2015-03-02 14:57:13
当您说您创建了一个接受文件列表的输入端口时,我猜您是指工具服务的输入。
假设输入端口名为my_file_list,当工具服务运行时,它将在端口my_file_list上获取数据值的列表。例如,它有"hello“、"hi”和"hola“,这是列表中的三个值。
在运行工具服务的位置上,它在一个临时目录中执行--每个服务的执行都是一个不同的目录。通常类似于/tmp/usecase-2029778474741087696。
将在临时目录中创建三个文件;这些文件包含(在本例中)在端口my_file_list上接收的工具服务的三个值。这些文件可以调用
还有一个名为my_input_list的文件。该文件将包含
/tmp/usecase-2029778474741087696/tempfile.0.tmp
/tmp/usecase-2029778474741087696/tempfile.1.tmp
/tmp/usecase-2029778474741087696/tempfile.2.tmp工具服务的脚本通常会逐行读取my_input_list的内容,并对所列文件的内容执行操作。
我还看到了一些‘欺骗’和直接在tempfile*.tmp上迭代的脚本,但这将是“一件坏事”。这个技巧的问题在于,如果您想要向工具服务添加第二个文件列表,那么文件my_input_list可以包含
/tmp/usecase7932018053449784034/tempfile.4.tmp
/tmp/usecase7932018053449784034/tempfile.5.tmp
/tmp/usecase7932018053449784034/tempfile.6.tmp因为其他临时文件用于其他文件列表端口。
我希望这能帮上忙
发布于 2015-03-02 14:30:09
工具服务允许您使用上传文件 --但是如果您通过作业提交节点使用HPC,那么您必须修改命令行工具,以便使用作业文件暂存命令进一步推送文件作为作业的一部分。这些文件将在指定工具脚本的当前(临时)目录中可用。
我会尝试通过工具服务来完成它,而不涉及beanshell,这样您就可以保持您的工作流程更简单。
需要记住的一件好事是,您可以在框中编写多个shell命令。
类似地,您可能希望检索结果,以便在工作流中进一步处理它们(除非它们是大规模的--在这种情况下,您只需输出它们的远程文件名并将它们再次发送到下一个HPC作业中)。
用于暂存和检索文件的确切命令取决于HPC作业提交系统。你在用哪一种?
发布于 2015-03-03 10:58:17
谢谢你们的意见。这是我对Taverna如何使用文件列表的误解。列表中的所有文件都被复制到临时的“沙箱”中,因此可以使用。另一种很好的简单方法是压缩目录并将压缩的文件传递到服务的输入端口。然后解压缩命令中的文件。再次感谢
https://stackoverflow.com/questions/28633396
复制相似问题