我对Taverna和Abaqus都很陌生,但我试图在HPC上远程使用Taverna中的“工具”运行Abaqus模型。如果我已经在HPC上有我的模型文件和输入,但是我需要一种在Taverna中动态上传文件的方法(试图通常包装Abaqus模型),这样可以正常工作。
我尝试添加一个带有文件列表的输入端口,但我不知道如何将其复制到我为该工具设置的“位置”。 beanhell服务可以作为答案,还是可以在执行abaqus模型之前迭代文件列表并复制它们?
由于
答案 0 :(得分:2)
当你说你创建了一个带文件列表的输入端口时,我想你的意思是工具服务的输入。
假设输入端口名为my_file_list,当运行工具服务时,它将在端口my_file_list上获取数据值列表。举个例子,说它有"你好"," 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
因为其他临时文件用于其他文件列表端口。
我希望有帮助
答案 1 :(得分:1)
工具服务允许您upload files - 但如果您通过作业提交节点使用HPC,则必须修改命令行工具,然后使用作业文件登台命令进一步推动文件作为工作的一部分。这些文件将在指定工具脚本的当前(临时)目录中可用。
我会尝试通过工具服务来实现它而不涉及beanshell - 然后你可以让你的工作流程更简单。
要记住的一件好事是你可以在框中编写多个shell命令。
类似地,您可能希望检索结果,以便您可以在工作流中进一步处理它们(除非它们很大 - 在这种情况下,您应该只输出其远程文件名并将它们再次发送到下一个HPC作业)
用于暂存文件和检索文件的确切命令取决于HPC作业提交系统。你在用哪一个?
答案 2 :(得分:1)
感谢投票人员。 这是我对Taverna如何使用文件列表的误解。列表中的所有文件都被复制到temp" sandbox"因此可以使用。 另一个不错的简单方法是压缩目录并将压缩文件传递到服务的输入端口。然后只需解压缩命令中的文件即可。 再次感谢