You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/10/19 17:56:00 UTC
airavata git commit: Use walltime provided by job submission task
model if available
Repository: airavata
Updated Branches:
refs/heads/orchestratorTaskBreakdown e7cbd9f81 -> 9e3d84be8
Use walltime provided by job submission task model if available
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/9e3d84be
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/9e3d84be
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/9e3d84be
Branch: refs/heads/orchestratorTaskBreakdown
Commit: 9e3d84be8d39ac739a6a35b768589d4fc7207ae3
Parents: e7cbd9f
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Mon Oct 19 11:54:20 2015 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Mon Oct 19 11:55:35 2015 -0400
----------------------------------------------------------------------
.../org/apache/airavata/gfac/core/GFacUtils.java | 17 +++++++++++++++--
.../gfac/impl/task/SSHForkJobSubmissionTask.java | 2 +-
.../gfac/impl/task/SSHJobSubmissionTask.java | 2 +-
3 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/9e3d84be/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index 871a9ab..d135eec 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -41,12 +41,14 @@ import org.apache.airavata.model.messaging.event.*;
import org.apache.airavata.model.process.ProcessModel;
import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.*;
+import org.apache.airavata.model.task.JobSubmissionTaskModel;
import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
import org.apache.airavata.registry.cpi.*;
import org.apache.airavata.registry.cpi.utils.Constants;
import org.apache.commons.io.FileUtils;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.utils.ZKPaths;
+import org.apache.thrift.TException;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.data.ACL;
@@ -403,7 +405,7 @@ public class GFacUtils {
return ZKPaths.makePath(ZkConstants.ZOOKEEPER_SERVERS_NODE, ZkConstants.ZOOKEEPER_GFAC_SERVER_NODE);
}
- public static JobDescriptor createJobDescriptor(ProcessContext processContext) throws GFacException, AppCatalogException, ApplicationSettingsException {
+ public static JobDescriptor createJobDescriptor(ProcessContext processContext, TaskContext taskContext) throws GFacException, AppCatalogException, ApplicationSettingsException {
JobDescriptor jobDescriptor = new JobDescriptor();
String emailIds = null;
ProcessModel processModel = processContext.getProcessModel();
@@ -513,6 +515,15 @@ public class GFacUtils {
jobDescriptor.setShellName("/bin/bash");
jobDescriptor.setAllEnvExport(true);
jobDescriptor.setOwner(processContext.getRemoteCluster().getServerInfo().getUserName());
+ // get walltime
+ try {
+ JobSubmissionTaskModel jobSubmissionTaskModel = ((JobSubmissionTaskModel) taskContext.getSubTaskModel());
+ if (jobSubmissionTaskModel.getWallTime() > 0) {
+ jobDescriptor.setMaxWallTime(jobSubmissionTaskModel.getWallTime() + "");
+ }
+ } catch (TException e) {
+ log.error("Error while getting job submissiont sub task model", e);
+ }
ComputationalResourceSchedulingModel scheduling = processModel.getResourceSchedule();
if (scheduling != null) {
@@ -535,7 +546,9 @@ public class GFacUtils {
jobDescriptor.setProcessesPerNode(ppn);
jobDescriptor.setCPUCount(totalCPUCount);
}
- if (scheduling.getWallTimeLimit() > 0) {
+ // max wall time may be set before this level if jobsubmission task has wall time configured to this job,
+ // if so we ignore scheduling configuration.
+ if (scheduling.getWallTimeLimit() > 0 && jobDescriptor.getMaxWallTime() != null) {
jobDescriptor.setMaxWallTime(String.valueOf(scheduling.getWallTimeLimit()));
if (resourceJobManager != null) {
if (resourceJobManager.getResourceJobManagerType().equals(ResourceJobManagerType.LSF)) {
http://git-wip-us.apache.org/repos/asf/airavata/blob/9e3d84be/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
index 4d121e5..3a14b2e 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHForkJobSubmissionTask.java
@@ -63,7 +63,7 @@ public class SSHForkJobSubmissionTask implements JobSubmissionTask {
JobModel jobModel = processContext.getJobModel();
jobModel.setTaskId(taskContext.getTaskId());
RemoteCluster remoteCluster = processContext.getRemoteCluster();
- JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext);
+ JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext, taskContext);
jobModel.setJobName(jobDescriptor.getJobName());
ResourceJobManager resourceJobManager = GFacUtils.getResourceJobManager(processContext);
JobManagerConfiguration jConfig = null;
http://git-wip-us.apache.org/repos/asf/airavata/blob/9e3d84be/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
index 7aba3b4..4cc041c 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
@@ -63,7 +63,7 @@ public class SSHJobSubmissionTask implements JobSubmissionTask {
JobModel jobModel = processContext.getJobModel();
jobModel.setTaskId(taskContext.getTaskId());
RemoteCluster remoteCluster = processContext.getRemoteCluster();
- JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext);
+ JobDescriptor jobDescriptor = GFacUtils.createJobDescriptor(processContext,taskContext);
jobModel.setJobName(jobDescriptor.getJobName());
ResourceJobManager resourceJobManager = GFacUtils.getResourceJobManager(processContext);
JobManagerConfiguration jConfig = null;