Search in sources :

Example 21 with LogicalData

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");
    }
}
Also used : TracingCopyTransferable(es.bsc.compss.types.data.transferable.TracingCopyTransferable) LogicalData(es.bsc.compss.types.data.LogicalData) SimpleURI(es.bsc.compss.types.uri.SimpleURI) DataLocation(es.bsc.compss.types.data.location.DataLocation) Semaphore(java.util.concurrent.Semaphore) TracingCopyListener(es.bsc.compss.types.data.listener.TracingCopyListener) IOException(java.io.IOException)

Example 22 with LogicalData

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;
}
Also used : LogicalData(es.bsc.compss.types.data.LogicalData)

Example 23 with 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;
}
Also used : LogicalData(es.bsc.compss.types.data.LogicalData)

Example 24 with LogicalData

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();
}
Also used : LogicalData(es.bsc.compss.types.data.LogicalData) MultiURI(es.bsc.compss.types.uri.MultiURI) UnstartedNodeException(es.bsc.compss.exceptions.UnstartedNodeException)

Example 25 with LogicalData

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");
}
Also used : WorkersDebugInformationListener(es.bsc.compss.types.data.listener.WorkersDebugInformationListener) LogicalData(es.bsc.compss.types.data.LogicalData) SimpleURI(es.bsc.compss.types.uri.SimpleURI) WorkersDebugInfoCopyTransferable(es.bsc.compss.types.data.transferable.WorkersDebugInfoCopyTransferable) DataLocation(es.bsc.compss.types.data.location.DataLocation) Semaphore(java.util.concurrent.Semaphore) COMPSsNode(es.bsc.compss.types.COMPSsNode) InitNodeException(es.bsc.compss.exceptions.InitNodeException) UnstartedNodeException(es.bsc.compss.exceptions.UnstartedNodeException)

Aggregations

LogicalData (es.bsc.compss.types.data.LogicalData)27 DataLocation (es.bsc.compss.types.data.location.DataLocation)9 UnstartedNodeException (es.bsc.compss.exceptions.UnstartedNodeException)6 SimpleURI (es.bsc.compss.types.uri.SimpleURI)6 MultiURI (es.bsc.compss.types.uri.MultiURI)5 Semaphore (java.util.concurrent.Semaphore)5 InitNodeException (es.bsc.compss.exceptions.InitNodeException)4 COMPSsNode (es.bsc.compss.types.COMPSsNode)3 Copy (es.bsc.compss.types.data.operation.copy.Copy)3 Resource (es.bsc.compss.types.resources.Resource)3 IOException (java.io.IOException)3 LinkedList (java.util.LinkedList)3 Data (es.bsc.compss.nio.commands.Data)2 DataRequest (es.bsc.compss.nio.dataRequest.DataRequest)2 MasterDataRequest (es.bsc.compss.nio.dataRequest.MasterDataRequest)2 DataAccessId (es.bsc.compss.types.data.DataAccessId)2 TracingCopyListener (es.bsc.compss.types.data.listener.TracingCopyListener)2 TracingCopyTransferable (es.bsc.compss.types.data.transferable.TracingCopyTransferable)2 DependencyParameter (es.bsc.compss.types.parameter.DependencyParameter)2 Parameter (es.bsc.compss.types.parameter.Parameter)2