Search in sources :

Example 21 with ResourceBroker

use of org.gridlab.gat.resources.ResourceBroker in project compss by bsc-wdc.

the class SshLsfResourceBrokerAdaptor method submitJob.

public Job submitJob(AbstractJobDescription abstractDescription, MetricListener listener, String metricDefinitionName) throws GATInvocationException {
    if (!(abstractDescription instanceof JobDescription)) {
        throw new GATInvocationException("can only handle JobDescriptions: " + abstractDescription.getClass());
    }
    JobDescription description = (JobDescription) ((JobDescription) abstractDescription).clone();
    SoftwareDescription sd = description.getSoftwareDescription();
    int nproc = description.getProcessCount();
    if (sd.streamingStderrEnabled() || sd.streamingStdinEnabled() || sd.streamingStdoutEnabled()) {
        throw new GATInvocationException("Streaming I/O not supported by SshLSF adaptor");
    }
    String authority = getAuthority();
    if (authority == null) {
        authority = "localhost";
    }
    // Create filename for return value.
    String returnValueFile = ".rc." + Math.random();
    /*java.io.File jobScriptFile = createJobScript(description);
    	java.io.File jobStarterFile = null;
    	if (nproc > 1) {
    	    jobStarterFile = createJobStarter(description, nproc, jobScriptFile);
    	}*/
    java.io.File bsubFile = createBsubScript(description, returnValueFile, nproc);
    if (logger.isDebugEnabled()) {
        logger.debug("**** Adding pre and post staging:\n  " + sd);
    }
    try {
        // Careful, you may be running on windows, so add a scheme.
        sd.addPostStagedFile(GAT.createFile(gatContext, new URI(returnValueFile)));
    } catch (Throwable e) {
        throw new GATInvocationException("Error in file staging", e);
    }
    ResourceBroker subBroker;
    try {
        subBroker = subResourceBroker(getSubContext(gatContext), brokerURI);
    } catch (Throwable e) {
        throw new GATInvocationException("Could not create subbroker to submit LSF jobs through ssh", e);
    }
    Sandbox sandbox = new Sandbox(gatContext, description, authority, null, true, true, true, true);
    SshLSFJob sshLSFJob = new SshLSFJob(gatContext, brokerURI, description, sandbox, subBroker, returnValueFile);
    Job job = null;
    if (description instanceof WrapperJobDescription) {
        WrapperJobCpi tmp = new WrapperJobCpi(gatContext, sshLSFJob, listener, metricDefinitionName);
        listener = tmp;
        job = tmp;
    } else {
        job = sshLSFJob;
    }
    if (listener != null && metricDefinitionName != null) {
        Metric metric = sshLSFJob.getMetricDefinitionByName(metricDefinitionName).createMetric(null);
        sshLSFJob.addMetricListener(listener, metric);
    }
    if (logger.isDebugEnabled()) {
        logger.debug("*******We are going to perform the ssh submission: ");
    }
    String jobid = sshLsfSubmission(sshLSFJob, description, bsubFile, subBroker, sandbox);
    if (jobid != null) {
        sshLSFJob.setState(Job.JobState.SCHEDULED);
        sshLSFJob.setSoft(description.getSoftwareDescription());
        sshLSFJob.setJobID(jobid);
        sshLSFJob.startListener();
    } else {
        // sandbox.removeSandboxDir();
        throw new GATInvocationException("Could not submit sshLSF job");
    }
    bsubFile.delete();
    return job;
}
Also used : ResourceBroker(org.gridlab.gat.resources.ResourceBroker) URI(org.gridlab.gat.URI) SoftwareDescription(org.gridlab.gat.resources.SoftwareDescription) File(java.io.File) Sandbox(org.gridlab.gat.resources.cpi.Sandbox) JobDescription(org.gridlab.gat.resources.JobDescription) WrapperJobDescription(org.gridlab.gat.resources.WrapperJobDescription) AbstractJobDescription(org.gridlab.gat.resources.AbstractJobDescription) GATInvocationException(org.gridlab.gat.GATInvocationException) WrapperJobCpi(org.gridlab.gat.resources.cpi.WrapperJobCpi) Metric(org.gridlab.gat.monitoring.Metric) Job(org.gridlab.gat.resources.Job) WrapperJobDescription(org.gridlab.gat.resources.WrapperJobDescription)

Example 22 with ResourceBroker

use of org.gridlab.gat.resources.ResourceBroker in project compss by bsc-wdc.

the class FileAdaptorTest method run.

private void run(String host, String script) {
    Preferences preferences = new Preferences();
    preferences.put("resourcebroker.adaptor.name", "commandlinessh,sshtrilead,local");
    preferences.put("file.adaptor.name", "commandlinessh,sshtrilead,local");
    SoftwareDescription sd = new SoftwareDescription();
    sd.setExecutable("/bin/bash");
    sd.setArguments(script);
    try {
        sd.addPreStagedFile(GAT.createFile(preferences, "tests" + java.io.File.separator + "src" + java.io.File.separator + "benchmarks" + java.io.File.separator + script));
    } catch (GATObjectCreationException e) {
        e.printStackTrace();
        System.exit(1);
    }
    ResourceBroker broker = null;
    try {
        broker = GAT.createResourceBroker(preferences, new URI("any://" + host));
    } catch (GATObjectCreationException e) {
        e.printStackTrace();
        System.exit(1);
    } catch (URISyntaxException e) {
        e.printStackTrace();
        System.exit(1);
    }
    Job job = null;
    try {
        job = broker.submitJob(new JobDescription(sd));
    } catch (GATInvocationException e) {
        e.printStackTrace();
        System.exit(1);
    }
    while (job.getState() != Job.JobState.STOPPED && job.getState() != Job.JobState.SUBMISSION_ERROR) {
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
        // ignored
        }
    }
}
Also used : JobDescription(org.gridlab.gat.resources.JobDescription) GATObjectCreationException(org.gridlab.gat.GATObjectCreationException) GATInvocationException(org.gridlab.gat.GATInvocationException) ResourceBroker(org.gridlab.gat.resources.ResourceBroker) URISyntaxException(java.net.URISyntaxException) Preferences(org.gridlab.gat.Preferences) Job(org.gridlab.gat.resources.Job) URI(org.gridlab.gat.URI) SoftwareDescription(org.gridlab.gat.resources.SoftwareDescription)

Example 23 with ResourceBroker

use of org.gridlab.gat.resources.ResourceBroker in project compss by bsc-wdc.

the class FileOutputStreamAdaptorTest method run.

private void run(String host, String script) {
    Preferences preferences = new Preferences();
    preferences.put("resourcebroker.adaptor.name", "commandlinessh,sshtrilead,local");
    preferences.put("file.adaptor.name", "commandlinessh,sshtrilead,local");
    SoftwareDescription sd = new SoftwareDescription();
    sd.setExecutable("/bin/bash");
    sd.setArguments(script);
    try {
        sd.addPreStagedFile(GAT.createFile(preferences, "tests" + java.io.File.separator + "src" + java.io.File.separator + "benchmarks" + java.io.File.separator + script));
    } catch (GATObjectCreationException e) {
        e.printStackTrace();
        System.exit(1);
    }
    ResourceBroker broker = null;
    try {
        broker = GAT.createResourceBroker(preferences, new URI("any://" + host));
    } catch (GATObjectCreationException e) {
        e.printStackTrace();
        System.exit(1);
    } catch (URISyntaxException e) {
        e.printStackTrace();
        System.exit(1);
    }
    Job job = null;
    try {
        job = broker.submitJob(new JobDescription(sd));
    } catch (GATInvocationException e) {
        e.printStackTrace();
        System.exit(1);
    }
    while (job.getState() != Job.JobState.STOPPED && job.getState() != Job.JobState.SUBMISSION_ERROR) {
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
        // ignored
        }
    }
}
Also used : JobDescription(org.gridlab.gat.resources.JobDescription) GATObjectCreationException(org.gridlab.gat.GATObjectCreationException) GATInvocationException(org.gridlab.gat.GATInvocationException) ResourceBroker(org.gridlab.gat.resources.ResourceBroker) URISyntaxException(java.net.URISyntaxException) Preferences(org.gridlab.gat.Preferences) Job(org.gridlab.gat.resources.Job) URI(org.gridlab.gat.URI) SoftwareDescription(org.gridlab.gat.resources.SoftwareDescription)

Example 24 with ResourceBroker

use of org.gridlab.gat.resources.ResourceBroker in project compss by bsc-wdc.

the class ResourceBrokerStreamingOutExample method start.

public void start(String brokerURI) {
    ResourceBroker broker = null;
    try {
        broker = GAT.createResourceBroker(new URI(brokerURI));
    } catch (GATObjectCreationException e) {
        System.err.println("Failed to create resource broker at location '" + brokerURI + "': " + e);
        return;
    } catch (URISyntaxException e) {
        System.err.println("Wrong uri '" + brokerURI + "': " + e);
        return;
    }
    SoftwareDescription sd = new SoftwareDescription();
    sd.setExecutable("/usr/bin/env");
    sd.enableStreamingStdout(true);
    JobDescription jd = new JobDescription(sd);
    Job job = null;
    try {
        job = broker.submitJob(jd);
    } catch (GATInvocationException e) {
        System.err.println("Failed to submit the job: " + e);
        return;
    }
    InputStream in = null;
    try {
        in = job.getStdout();
    } catch (GATInvocationException e) {
        System.err.println("Failed to get the stdout stream: " + e);
        return;
    }
    while (true) {
        int i = 0;
        try {
            i = in.read();
        } catch (IOException e) {
            System.err.println("Failed to read: " + e);
            return;
        }
        if (i == -1) {
            break;
        } else {
            System.out.print((char) i);
        }
    }
}
Also used : JobDescription(org.gridlab.gat.resources.JobDescription) GATObjectCreationException(org.gridlab.gat.GATObjectCreationException) GATInvocationException(org.gridlab.gat.GATInvocationException) ResourceBroker(org.gridlab.gat.resources.ResourceBroker) InputStream(java.io.InputStream) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException) Job(org.gridlab.gat.resources.Job) URI(org.gridlab.gat.URI) SoftwareDescription(org.gridlab.gat.resources.SoftwareDescription)

Example 25 with ResourceBroker

use of org.gridlab.gat.resources.ResourceBroker in project compss by bsc-wdc.

the class SubmitLocalJob method main.

public static void main(String[] args) throws Exception {
    SoftwareDescription sd = new SoftwareDescription();
    sd.setExecutable("/bin/hostname");
    File stdout = GAT.createFile("hostname.txt");
    sd.setStdout(stdout);
    JobDescription jd = new JobDescription(sd);
    ResourceBroker broker = GAT.createResourceBroker(new URI("any://localhost"));
    Job job = broker.submitJob(jd);
    while ((job.getState() != JobState.STOPPED) && (job.getState() != JobState.SUBMISSION_ERROR)) Thread.sleep(1000);
    GAT.end();
}
Also used : JobDescription(org.gridlab.gat.resources.JobDescription) ResourceBroker(org.gridlab.gat.resources.ResourceBroker) Job(org.gridlab.gat.resources.Job) File(org.gridlab.gat.io.File) URI(org.gridlab.gat.URI) SoftwareDescription(org.gridlab.gat.resources.SoftwareDescription)

Aggregations

URI (org.gridlab.gat.URI)26 JobDescription (org.gridlab.gat.resources.JobDescription)26 ResourceBroker (org.gridlab.gat.resources.ResourceBroker)26 SoftwareDescription (org.gridlab.gat.resources.SoftwareDescription)24 Job (org.gridlab.gat.resources.Job)19 GATInvocationException (org.gridlab.gat.GATInvocationException)18 URISyntaxException (java.net.URISyntaxException)17 GATObjectCreationException (org.gridlab.gat.GATObjectCreationException)16 Preferences (org.gridlab.gat.Preferences)8 IOException (java.io.IOException)6 File (org.gridlab.gat.io.File)6 BufferedReader (java.io.BufferedReader)4 InputStreamReader (java.io.InputStreamReader)4 GATContext (org.gridlab.gat.GATContext)3 HashMap (java.util.HashMap)2 WrapperJobDescription (org.gridlab.gat.resources.WrapperJobDescription)2 CertificateSecurityContext (org.gridlab.gat.security.CertificateSecurityContext)2 File (java.io.File)1 InputStream (java.io.InputStream)1 AdvertService (org.gridlab.gat.advert.AdvertService)1