运行使用pyCOMPS实现的应用程序时出错。该应用程序运行良好,但我已经在应用程序中做了一些更改,它已停止工作。这是我从应用程序中获得的堆栈:
--- START OF NESTED EXCEPTION STACK TRACE ---
*** stack trace of GATInvocationException
--- START OF NESTED EXCEPTION STACK TRACE ---
*** stack trace of GATInvocationException
--- START OF NESTED EXCEPTION STACK TRACE ---
*** stack trace of IOException
java.io.IOException: Error during SCP transfer.
at com.trilead.ssh2.SCPClient.put(SCPClient.java:592)
at com.trilead.ssh2.SCPClient.put(SCPClient.java:456)
at org.gridlab.gat.io.cpi.sshtrilead.SshTrileadFileAdaptor.put(SshTrileadFileAdaptor.java:418)
...
Caused by: java.io.IOException: Remote scp terminated with error (scp: /gpfs/scratch/wdir_pycompss: No such file or directory).
at com.trilead.ssh2.SCPClient.readResponse(SCPClient.java:59)
at com.trilead.ssh2.SCPClient.sendFiles(SCPClient.java:166)
at com.trilead.ssh2.SCPClient.put(SCPClient.java:588)
... 15 more
--- END OF NESTED EXCEPTION STACK TRACE ---
*** stack trace of MethodNotApplicableException
LocalFile: cannot copy to remote destination
--- END OF NESTED EXCEPTION STACK TRACE ---
--- END OF NESTED EXCEPTION STACK TRACE ---
它表示找不到文件夹,但在project.xml中将其定义为workingDir,并且应用程序正在创建此文件夹。难道我做错了什么?
答案 0 :(得分:4)
project.xml中定义的工作目录必须在执行已定义任务之前存在,因为它是执行远程任务的位置。根据(py)COMPS运行时使用的通信适配器,如果它不存在,则可以创建它。从您发送的堆栈中我可以推断出您正在使用GAT适配器运行而事实并非如此。
您正在做的错误是任务正在创建工作目录,并且不允许。工作目录文件夹应该在部署时创建。在这种情况下,运行时正在尝试在执行期间应创建的文件夹中运行任务。在任务代码内部可以创建一个文件夹作为具有相对路径的沙箱,它将在工作目录中创建,但请记住,即使它们在同一个工作节点中执行,它也不会从一个任务持久存储到另一个任务。