use of es.bsc.compss.types.data.LogicalData in project compss by bsc-wdc.
the class Tracer method transferMasterPackage.
private static void transferMasterPackage() {
if (DEBUG) {
LOGGER.debug("Tracing: Transferring master package");
}
// Create source and target locations for tar.gz file
String filename = "master_compss_trace.tar.gz";
DataLocation source = null;
String sourcePath = DataLocation.Protocol.FILE_URI.getSchema() + filename;
try {
SimpleURI uri = new SimpleURI(sourcePath);
source = DataLocation.createLocation(Comm.getAppHost(), uri);
} catch (Exception e) {
ErrorManager.error(DataLocation.ERROR_INVALID_LOCATION + " " + sourcePath, e);
}
DataLocation target = null;
String targetPath = DataLocation.Protocol.FILE_URI.getSchema() + traceDirPath + filename;
try {
SimpleURI uri = new SimpleURI(targetPath);
target = DataLocation.createLocation(Comm.getAppHost(), uri);
} catch (Exception e) {
ErrorManager.error(DataLocation.ERROR_INVALID_LOCATION + " " + targetPath, e);
}
// Ask for data
Semaphore sem = new Semaphore(0);
TracingCopyListener tracingListener = new TracingCopyListener(sem);
tracingListener.addOperation();
Comm.getAppHost().getNode().obtainData(new LogicalData("tracing master package"), source, target, new LogicalData("tracing master package"), new TracingCopyTransferable(), tracingListener);
// Wait for data
tracingListener.enable();
try {
sem.acquire();
} catch (InterruptedException ex) {
ErrorManager.warn("Error waiting for tracing files in master to get saved");
}
}
use of es.bsc.compss.types.data.LogicalData in project compss by bsc-wdc.
the class Comm method registerData.
/**
* Registers a new data with id @dataId
*
* @param dataId
* @return
*/
public static synchronized LogicalData registerData(String dataId) {
LOGGER.debug("Register new data " + dataId);
LogicalData logicalData = new LogicalData(dataId);
data.put(dataId, logicalData);
return logicalData;
}
use of es.bsc.compss.types.data.LogicalData in project compss by bsc-wdc.
the class Comm method registerExternalPSCO.
/**
* Registers a new External PSCO id @id for the data with id @dataId dataId must exist
*
* @param dataId
* @param id
* @return
*/
public static synchronized LogicalData registerExternalPSCO(String dataId, String id) {
LogicalData ld = registerPSCO(dataId, id);
ld.setValue(id);
return ld;
}
use of es.bsc.compss.types.data.LogicalData in project compss by bsc-wdc.
the class Comm method dataDump.
/**
* Dumps the stored data (only for testing)
*
* @return
*/
public static synchronized String dataDump() {
StringBuilder sb = new StringBuilder("DATA DUMP\n");
for (Entry<String, LogicalData> lde : data.entrySet()) {
sb.append("\t *").append(lde.getKey()).append(":\n");
LogicalData ld = lde.getValue();
for (MultiURI u : ld.getURIs()) {
sb.append("\t\t + ").append(u.toString()).append("\n");
for (String adaptor : adaptors.keySet()) {
Object internal = null;
try {
internal = u.getInternalURI(adaptor);
if (internal != null) {
sb.append("\t\t\t - ").append(internal.toString()).append("\n");
}
} catch (UnstartedNodeException une) {
// Node was not started. Cannot print internal object.
}
}
}
}
return sb.toString();
}
use of es.bsc.compss.types.data.LogicalData in project compss by bsc-wdc.
the class Resource method getWorkersDebugInfo.
private void getWorkersDebugInfo() {
if (DEBUG) {
LOGGER.debug("Copying Workers Information");
}
COMPSsNode masterNode = Comm.getAppHost().getNode();
Semaphore sem = new Semaphore(0);
WorkersDebugInformationListener wdil = new WorkersDebugInformationListener(sem);
// Get Worker output
wdil.addOperation();
String outFileName = "worker_" + getName() + ".out";
SimpleURI outFileOrigin = node.getCompletePath(DataType.FILE_T, "log" + File.separator + "static_" + outFileName);
String outFileTarget = Protocol.FILE_URI.getSchema() + Comm.getAppHost().getWorkersDirPath() + File.separator + outFileName;
DataLocation outSource = null;
try {
outSource = DataLocation.createLocation(this, outFileOrigin);
} catch (Exception e) {
ErrorManager.error(DataLocation.ERROR_INVALID_LOCATION + " " + outFileOrigin.toString(), e);
}
DataLocation outTarget = null;
try {
SimpleURI uri = new SimpleURI(outFileTarget);
outTarget = DataLocation.createLocation(Comm.getAppHost(), uri);
} catch (Exception e) {
ErrorManager.error(DataLocation.ERROR_INVALID_LOCATION + " " + outFileTarget);
}
LOGGER.debug("- Source: " + outFileOrigin);
LOGGER.debug("- Target: " + outFileTarget);
masterNode.obtainData(new LogicalData("workerOut" + this.getName()), outSource, outTarget, new LogicalData("workerOut" + this.getName()), new WorkersDebugInfoCopyTransferable(), wdil);
// Get Worker error
wdil.addOperation();
String errFileName = "worker_" + getName() + ".err";
SimpleURI errFileOrigin = node.getCompletePath(DataType.FILE_T, "log" + File.separator + "static_" + errFileName);
String errFileTarget = Protocol.FILE_URI.getSchema() + Comm.getAppHost().getWorkersDirPath() + File.separator + errFileName;
DataLocation errSource = null;
try {
errSource = DataLocation.createLocation(this, errFileOrigin);
} catch (Exception e) {
ErrorManager.error(DataLocation.ERROR_INVALID_LOCATION + " " + errFileOrigin.toString(), e);
}
DataLocation errTarget = null;
try {
SimpleURI uri = new SimpleURI(errFileTarget);
errTarget = DataLocation.createLocation(Comm.getAppHost(), uri);
} catch (Exception e) {
ErrorManager.error(DataLocation.ERROR_INVALID_LOCATION + " " + errFileTarget);
}
LOGGER.debug("- Source: " + errFileOrigin);
LOGGER.debug("- Target: " + errFileTarget);
masterNode.obtainData(new LogicalData("workerErr" + this.getName()), errSource, errTarget, new LogicalData("workerErr" + this.getName()), new WorkersDebugInfoCopyTransferable(), wdil);
// Wait transfers
wdil.enable();
try {
sem.acquire();
} catch (InterruptedException ex) {
LOGGER.error("Error waiting for worker debug files in resource " + getName() + " to get saved");
}
LOGGER.debug("Worker files from resource " + getName() + "received");
}
Aggregations