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

File not found in task defined in COMPSs

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

知道可能是什么错误吗?

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

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
        );

如果您的参数确实是一个文件,您需要指定其类型(即 type=Type.FILE)。否则 COMPS 运行时无法区分字符串变量和文件(因为文件实际上是一个带有路径的字符串)。您的界面应如下所示:

@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
);