在COMPS中定义的任务中找不到文件

时间:2016-03-04 15:39:41

标签: java distributed-computing hpc compss

我已经用COMP Superscalar实现了一个应用程序,我的任务失败了。查看标准错误文件(job1_NEW.err)文件,我得到了一个File Not Found异常,但该文件存在于我的计算机中。

知道可能是什么错误吗?

编辑:添加了资源和项目文件

resources.xml中

          <Resource Name="172.16.8.2">
               <Capabilities>
                        <Host>
                                <TaskCount>0</TaskCount>
                                <Queue>short</Queue>
                                <Queue/>
                        </Host>
                        <Processor>
                                <Architecture>x86_64</Architecture>
                                <Speed>3.0</Speed>
                                <CoreCount>4</CoreCount>
                        </Processor>
                        <OS>
                                <OSType>Linux</OSType>
                                <MaxProcessesPerUser>32</MaxProcessesPerUser>
                        </OS>
                        <StorageElement>
                                <Size>8</Size>
                        </StorageElement>
                        <Memory>
                                <PhysicalSize>4</PhysicalSize>
                                <VirtualSize>8</VirtualSize>

                        </Memory>
                        <ApplicationSoftware>
                                <Software>Java</Software>
                        </ApplicationSoftware>
                        <Service/>
                        <VO/>
                        <Cluster/>
                        <FileSystem/>
                        <NetworkAdaptor/>
                        <JobPolicy/>
                        <AccessControlPolicy/>
                </Capabilities>
                <Requirements/>
                <Adaptors>
                    <Adaptor name="integratedtoolkit.gat.master.GATAdaptor">
                        <BrokerAdaptor>sshtrilead</BrokerAdaptor>
                    </Adaptor>
                </Adaptors>
        </Resource>

project.xml中

 <Worker Name="172.16.8.2">
    <InstallDir>/opt/COMPSs/Runtime/scripts/system/</InstallDir>
    <WorkingDir>/home/user/test/wdir/</WorkingDir>
    <AppDir>/home/user/test/java/matmul/jar/</AppDir>
    <User>user</User>
  </Worker>

接口文件中的方法声明

@Method(declaringClass = "matmul.files.MatmulImpl")
        void multiplyAccumulative(
                @Parameter(direction = Direction.INOUT) String file1,
                @Parameter() String file2,
                @Parameter() String file3,
                @Parameter() int bsize
        );

1 个答案:

答案 0 :(得分:2)

If your parameter is indeed a file you need to specify its type (i.e. type=Type.FILE). Otherwise the COMPSs runtime is not able to differentiate between a string variable and a file (because the file is actually a string with its path). Your interface should look like this:

@Method(declaringClass = "matmul.files.MatmulImpl")
void multiplyAccumulative(
    @Parameter(direction = Direction.INOUT, type = Type.FILE) String file1,
    @Parameter() String file2,
    @Parameter() String file3,
    @Parameter() int bsize
);