I have implemented an application with COMP Superscalar and I got task failed. Looking at the standard error file (job1_NEW.err) file I got a File Not Found exception but the file exists in my computer.
Any idea what could be the error?
EDIT: Added the resources and the project files
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 declaration in the Interface file
@Method(declaringClass = "matmul.files.MatmulImpl")
void multiplyAccumulative(
@Parameter(direction = Direction.INOUT) String file1,
@Parameter() String file2,
@Parameter() String file3,
@Parameter() int bsize
);
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
);