Sha256: 56dff42ed2fa0a87ef18d67c9eea3de893021921d7fdc67936779b1487d507b4
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
#! /usr/bin/env ruby # coding: utf-8 require "comana/computationmanager.rb" require "comana/machineinfo.rb" # # # class QueueSubmitter < ComputationManager QSUB_SCRIPT = "script.qsub" class PrepareNextError < Exception; end # def initialize(opts) super(opts[:d]) @command = opts[:c] @nodes = opts[:n] @speed = opts[:s] @machineinfo = opts[:machineinfo] @lockdir = "lock_queuesubmitter" end def calculate script_path = "#{@dir}/#{QSUB_SCRIPT}" File.open(script_path, "w") do |io| dump_qsub_str(io) end system("cd #{@dir}; qsub #{script_path} > #{@dir}/#{@lockdir}/stdout") end # Raise QueueSubmitter::PrepareNextError when called. def prepare_next raise PrepareNextError end def finished? # do nothing end private def dump_qsub_str(io = nil) fs = @machineinfo.get_info("fileserver") #fileserver node_info = @machineinfo.get_info(@nodes) num = node_info["economy_nodes"] num = node_info["speed_nodes"] if @speed str = [ "#! /bin/sh", "#PBS -N #{@dir}", "#PBS -l nodes=#{num}:ppn=1:#{@nodes},walltime=168:00:00", "#PBS -j oe", "mkdir -p ${PBS_O_WORKDIR}", "cp ${PBS_NODEFILE} ${PBS_O_WORKDIR}/pbs_nodefile", "rsync -azq --delete #{fs}:${PBS_O_WORKDIR}/ ${PBS_O_WORKDIR}", "cd ${PBS_O_WORKDIR}", "#{@command}", "#rsync -azq --delete ${PBS_O_WORKDIR}/ #{fs}:${PBS_O_WORKDIR}", "#rm -rf ${PBS_O_WORKDIR}", ].join("\n") if io io.puts str else return str end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
comana-0.0.6 | lib/comana/queuesubmitter.rb |