[Swift-devel] "solution" to coasters + condor problem (on uc3)

Glen Hocky hockyg at uchicago.edu
Fri Nov 30 15:12:30 CST 2012


Hey everyone,
This is in reference to a problem I just sent to swift-support earlier.

In order to get coasters to work on a condor system without a shared file
system, I suggested putting worker.pl as an input file to condor which is
then transferred.

The problem is that this needs to be translated through from the coasters
provider or via some environmental inputs that I don't know how to do

However, here is a hacked proof of concept that "solves" the problem in a
way specific to me.
What it does is rather than write the randomly generated cscript*.pl file
in the "arguments" string, the condor provider now skips that argument and
throws in the hard coded path to worker.pl

It would be nice for someone who actually knows what they're doing to make
a general version of this fix

Best
Glen

------------------------

 Index:
provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/condor/CondorExecutor.java
===================================================================
---
provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/condor/CondorExecutor.java
   (revision 3524)
+++
provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/condor/CondorExecutor.java
   (working copy)
@@ -53,6 +53,16 @@
                if ("MPI".equals(type)) {
                        wr.write("universe = MPI\n");
                }
+               else if ("parallel".equals(type)) {
+                       wr.write("universe = parallel\n");
+               }
+                else if ("local-cloud".equals(type)){
+                       wr.write("universe = vanilla\n");
+                       wr.write("should_transfer_files = YES\n");
+                       wr.write("when_to_transfer_output =
ON_EXIT_OR_EVICT\n");
+                       wr.write("Transfer_Executable = true\n");
+                        wr.write("transfer_input_files =
/mnt/hadoop/hockyg/swiftwork/worker.pl\n");
+                }
                else if("grid".equals(type)) {
                        grid = true;
                        String gridResource = (String)
spec.getAttribute("gridResource");
@@ -69,10 +79,15 @@
                else {
                        wr.write("universe = vanilla\n");
                }
+
+                //set account group if specified
+               writeAttr("AccountingGroup", "+AccountingGroup = ", wr);
+
                if ("true".equals(spec.getAttribute("holdIsFailure"))) {
                        wr.write("periodic_remove = JobStatus == 5\n");
                }
                writeAttr("count", "machine_count = ", wr);
+               writeAttr("count", "request_cpus = ", wr);
                if (spec.getStdInput() != null) {
                        wr.write("input = " + quote(spec.getStdInput()) +
"\n");
                }
@@ -103,6 +118,9 @@
                if (args != null && args.size() > 0) {
                        wr.write("arguments = ");
                        i = args.iterator();
+                        //note: space at end of next line is important
+                        wr.write("/mnt/hadoop/hockyg/swiftwork/worker.pl");
+                        i.next();
                        while (i.hasNext()) {
                                wr.write(quote((String) i.next()));
                                if (i.hasNext()) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/swift-devel/attachments/20121130/aa861910/attachment.html>


More information about the Swift-devel mailing list