SCP失败运行pyCOMPSs应用程序

时间:2016-03-21 15:00:09

标签: python distributed-computing hpc compss pycompss

运行使用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,并且应用程序正在创建此文件夹。难道我做错了什么?

1 个答案:

答案 0 :(得分:4)

project.xml中定义的工作目录必须在执行已定义任务之前存在,因为它是执行远程任务的位置。根据(py)COMPS运行时使用的通信适配器,如果它不存在,则可以创建它。从您发送的堆栈中我可以推断出您正在使用GAT适配器运行而事实并非如此。

您正在做的错误是任务正在创建工作目录,并且不允许。工作目录文件夹应该在部署时创建。在这种情况下,运行时正在尝试在执行期间应创建的文件夹中运行任务。在任务代码内部可以创建一个文件夹作为具有相对路径的沙箱,它将在工作目录中创建,但请记住,即使它们在同一个工作节点中执行,它也不会从一个任务持久存储到另一个任务。