我已经用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
);
答案 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
);