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 2014/12/22 21:13:26 UTC
[1/2] airavata git commit: Added GSISSJ input order preserving
implementation and smaple application registeration for montex and gaussian
Repository: airavata
Updated Branches:
refs/heads/master d6ee95327 -> a9136101c
Added GSISSJ input order preserving implementation and smaple application registeration for montex and gaussian
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/e2cc8a48
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/e2cc8a48
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/e2cc8a48
Branch: refs/heads/master
Commit: e2cc8a4897213a683c5ead237a78e78c2c7ad83f
Parents: 201a05e
Author: shamrath <sh...@gmail.com>
Authored: Mon Dec 22 15:13:08 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Mon Dec 22 15:13:08 2014 -0500
----------------------------------------------------------------------
.../tools/RegisterSampleApplications.java | 108 ++++++++++++++++++-
.../gfac/gsissh/util/GFACGSISSHUtils.java | 28 ++++-
2 files changed, 131 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/e2cc8a48/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index 18408b7..75cb78c 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -72,6 +72,8 @@ public class RegisterSampleApplications {
private static final String wrfName = "WRF";
private static final String phastaName = "PHASTA";
private static final String mpiName = "HelloMPI";
+ private static final String monteXName = "TinkerMonte";
+ private static final String gaussianName = "Gaussian";
//Appplication Descriptions
private static final String echoDescription = "A Simple Echo Application";
@@ -85,6 +87,8 @@ public class RegisterSampleApplications {
private static final String wrfDescription = "Weather Research and Forecasting";
private static final String phastaDescription = "Computational fluid dynamics solver";
private static final String mpiDescription = "A Hello MPI Application";
+ private static final String monteXDescription = "Grid Chem Tinker Monte Application";
+ private static final String gaussianDescription = "Grid Chem Gaussian Application";
//App Module Id's
private static String echoModuleId;
@@ -98,6 +102,8 @@ public class RegisterSampleApplications {
private static String wrfModuleId;
private static String phastaModuleId;
private static String mpiModuleId;
+ private static String monteXModuleId;
+ private static String gaussianModuleId;
//App Interface Id's
private static String echoInterfaceId = "";
@@ -295,6 +301,14 @@ public class RegisterSampleApplications {
phastaName, "1.0", phastaDescription));
System.out.println("phasta Module Id " + phastaModuleId);
+ monteXModuleId = airavataClient.registerApplicationModule(
+ RegisterSampleApplicationsUtils.createApplicationModule(
+ monteXName, "1.0", monteXDescription));
+ System.out.println("Tinker Monte Module Id " + monteXModuleId);
+
+ gaussianModuleId = airavataClient.registerApplicationModule(
+ RegisterSampleApplicationsUtils.createApplicationModule(
+ gaussianName, "1.0", gaussianDescription));
} catch (TException e) {
e.printStackTrace();
}
@@ -318,7 +332,7 @@ public class RegisterSampleApplications {
//Registering FSD Apps
registerFSDApps();
-
+
}
public void registerAppInterfaces() {
@@ -358,6 +372,10 @@ public class RegisterSampleApplications {
//Registering WRF
registerWRFInterface();
+ registerTinkerMonteInterface();
+
+ registerGaussianInterface();
+
}
public void registerGromaxWorkflowInterfaces() {
@@ -934,6 +952,84 @@ public class RegisterSampleApplications {
}
}
+ private void registerGaussianInterface() {
+ try {
+ System.out.println("#### Registering Gaussian Application Interface ####");
+
+ List<String> appModules = new ArrayList<String>();
+ appModules.add(gaussianModuleId);
+
+ InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("MainInputFile", null,
+ DataType.URI, null, 1, false, "Gaussian main input file", null);
+
+ List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+ applicationInputs.add(input1);
+
+ OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("gaussian.out",
+ "", DataType.URI);
+
+ List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+ applicationOutputs.add(output1);
+
+ String addApplicationInterfaceId = airavataClient.registerApplicationInterface(
+ RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Gaussian", "Gaussian application",
+ appModules, applicationInputs, applicationOutputs));
+ System.out.println("Gaussian Application Interface Id " + addApplicationInterfaceId);
+
+ } catch (TException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void registerTinkerMonteInterface() {
+ try {
+ System.out.println("#### Registering Tinker Monte Application Interface ####");
+
+ List<String> appModules = new ArrayList<String>();
+ appModules.add(monteXModuleId);
+
+ InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("xyzf", "O16.xyz",
+ DataType.STRING, null, 1, false, "Tinker monte input_1", null);
+ InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("keyf", "O16.key",
+ DataType.STRING, "-k", 2, false, "Tinker monte input_2", null);
+ InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("stps", "20000",
+ DataType.STRING, null, 3, false, "Tinker monte input_3", null);
+ InputDataObjectType input4 = RegisterSampleApplicationsUtils.createAppInput("Ctc", "C",
+ DataType.STRING, null, 4, false, "Tinker monte input_4", null);
+ InputDataObjectType input5 = RegisterSampleApplicationsUtils.createAppInput("stpsZ", "3.0",
+ DataType.STRING, null, 5, false, "Tinker monte input_5", null);
+ InputDataObjectType input6 = RegisterSampleApplicationsUtils.createAppInput("temp", "298",
+ DataType.STRING, null, 6, false, "Tinker monte input_6", null);
+ InputDataObjectType input7 = RegisterSampleApplicationsUtils.createAppInput("Rconv", "0.01",
+ DataType.STRING, null, 7, false, "Tinker monte input_7", null);
+
+
+ List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+ applicationInputs.add(input1);
+ applicationInputs.add(input2);
+ applicationInputs.add(input3);
+ applicationInputs.add(input4);
+ applicationInputs.add(input5);
+ applicationInputs.add(input6);
+ applicationInputs.add(input7);
+
+ OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Diskoutputfile_with_dir",
+ "", DataType.URI);
+
+ List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+ applicationOutputs.add(output1);
+
+ String addApplicationInterfaceId = airavataClient.registerApplicationInterface(
+ RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Tinker_Monte", "Monte application",
+ appModules, applicationInputs, applicationOutputs));
+ System.out.println("Monte Application Interface Id " + addApplicationInterfaceId);
+
+ } catch (TException e) {
+ e.printStackTrace();
+ }
+ }
+
+
public void registerStampedeApps() {
try {
System.out.println("#### Registering Application Deployments on Stampede #### \n");
@@ -1029,6 +1125,16 @@ public class RegisterSampleApplications {
lammpsDescription));
System.out.println("LAMMPS on trestles deployment Id " + lammpsAppDeployId);
+ String monteXAppDeployId = airavataClient.registerApplicationDeployment(
+ RegisterSampleApplicationsUtils.createApplicationDeployment(monteXModuleId, trestlesResourceId,
+ "path/to/the/monte.x", ApplicationParallelismType.OPENMP, monteXDescription));
+ System.out.println("Tinker Monte on trestles deployment Id " + monteXAppDeployId);
+
+ String gaussianAppDeployId = airavataClient.registerApplicationDeployment(
+ RegisterSampleApplicationsUtils.createApplicationDeployment(gaussianModuleId, trestlesResourceId,
+ "path/to/the/gaussian.sh", ApplicationParallelismType.OPENMP, gaussianDescription));
+ System.out.println("Gaussian on trestles deployment Id " + gaussianAppDeployId);
+
} catch (TException e) {
e.printStackTrace();
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/e2cc8a48/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
index e68effa..6aaafda 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
@@ -198,10 +198,30 @@ public class GFACGSISSHUtils {
List<String> inputValues = new ArrayList<String>();
MessageContext input = jobExecutionContext.getInMessageContext();
Map<String, Object> inputs = input.getParameters();
- Set<String> keys = inputs.keySet();
- for (String paramName : keys) {
- InputDataObjectType inputDataObjectType = (InputDataObjectType) inputs.get(paramName);
- inputValues.add(inputDataObjectType.getValue());
+ // sort the inputs first and then build the command List
+ Comparator<InputDataObjectType> inputOrderComparator = new Comparator<InputDataObjectType>() {
+ @Override
+ public int compare(InputDataObjectType inputDataObjectType, InputDataObjectType t1) {
+ return inputDataObjectType.getInputOrder() - t1.getInputOrder();
+ }
+ };
+ Set<InputDataObjectType> sortedInputSet = new TreeSet<InputDataObjectType>(inputOrderComparator);
+ for (Object object : input.getParameters().values()) {
+ if (object instanceof InputDataObjectType) {
+ InputDataObjectType inputDOT = (InputDataObjectType) object;
+ sortedInputSet.add(inputDOT);
+ }
+ }
+ for (InputDataObjectType inputDataObjectType : sortedInputSet) {
+ if (inputDataObjectType.getApplicationArgument() != null
+ && !inputDataObjectType.getApplicationArgument().equals("")) {
+ inputValues.add(inputDataObjectType.getApplicationArgument());
+ }
+
+ if (inputDataObjectType.getValue() != null
+ && !inputDataObjectType.getValue().equals("")) {
+ inputValues.add(inputDataObjectType.getValue());
+ }
}
jobDescriptor.setInputValues(inputValues);
[2/2] airavata git commit: Merge remote-tracking branch
'origin/master'
Posted by sh...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a9136101
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a9136101
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a9136101
Branch: refs/heads/master
Commit: a9136101c48d5d7e6c87209945473bf7726469c7
Parents: e2cc8a4 d6ee953
Author: shamrath <sh...@gmail.com>
Authored: Mon Dec 22 15:14:17 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Mon Dec 22 15:14:17 2014 -0500
----------------------------------------------------------------------
.../client/samples/CreateLaunchExperiment.java | 8 +-
modules/distribution/server/pom.xml | 1276 +++++++++---------
modules/ws-messenger/message-monitor/pom.xml | 2 +-
3 files changed, 668 insertions(+), 618 deletions(-)
----------------------------------------------------------------------