diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1.parset b/Appl/CEP/CS1/CS1_Run/src/CS1.parset index eea0f99ad88b6008ad2c0e7666935c9f9b23f88e..4e8d7feaf0d4314765455a624bbc05d16dcb208d 100644 --- a/Appl/CEP/CS1/CS1_Run/src/CS1.parset +++ b/Appl/CEP/CS1/CS1_Run/src/CS1.parset @@ -5,28 +5,25 @@ # - Some general variables (like number of runs) # - Variables per application. The idea is that these variables are only read by that specific application (if they must be read by more applications, put them in General...) -Connect = true - -TransposePorts = [9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011] - # The hosts for all (socket)connections # Do not change these hosts without changing the machinefile(s). Host on which TFC_DelayCompensation runs. -Connections.Input_Delay.ServerHost =10.20.1.10 +Connections.Input_Delay.ServerHost =10.20.170.12 Connections.AMC.ServerHost =127.0.0.1 # where AMC server runs # The ports for all (socket)connections -Connections.Input_Delay.Ports =[7200,7201,7202,7203,7201,7202,7203,7201,7202,7203,7201,7202,7203,7201,7202,7203,7201,7202,7203,7201,7202,7203,7201,7202,7203,7204,7201,7202,7203,7204,7201,7202,7203,7204,7201,7202,7203] -Connections.Input_BGLProc.Ports =[8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063] -Connections.BGLProc_Storage.Ports=[8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263] +Connections.Input_BGLProc.Ports =[8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163] +Connections.BGLProc_Storage.Ports=[8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363] Connections.AMC.Port =31337 +Connections.Input_Delay.Ports = [7200,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7211,7212,7213,7214,7215,7216,7217,7218,7219,7220] Connections.Input_BGLProc.TransportHolder = SOCKET # one of SOCKET, FILE, NULL -Connections.Input_BGLProc.BaseFileName = "/data/Input" +Connections.Input_BGLProc.BaseFileName = "/data/real-sin-1h" Connections.BGLProc_Storage.TransportHolder = SOCKET # one of SOCKET, FILE, NULL Connections.BGLProc_Storage.BaseFileName = "Correlations" # The format of the data +Observation.NSubbands = 1 Observation.NChannels = 256 Observation.NPolarisations=2 Observation.PositionType = ITRF # should be ITRF @@ -48,23 +45,23 @@ Observation.StationPositions = [\ # long, lat, alt Observation.NBeams = 1 # number of beams used Observation.DirectionType = J2000 # direction type Observation.BeamDirections = [\ # pair of RA/DEC per beam (angle in rad) -0, 0.92] +6.1234876806221052, 1.0265153995604648] Observation.DelayCompensation = T # General Variables -General.SubbandsPerPset = 4 +General.SubbandsPerPset = 1 # Variables for the DelayCompensation DelayComp.ConverterType=IMPL # should be one of IMPL, CLIENT # Variables for the InputSection Input.NTimesInFrame=16 -Input.NSubbandsPerFrame=40 +Input.NSubbandsPerFrame=8 Input.SzEPAheader=16 Input.IPHeaderSize=32 -Input.NSamplesToBuffer=4000000 +Input.NSamplesToBuffer=120000000 Input.WriteRawDataToFile = F -Input.OutputRawDataFiles = [] +Input.OutputRawDataFiles = ["/dev/null", "/dev/null"] Input.Transport.Station0.Rsp0.th = NULL # should be one of NULL, FILE, SOCKET, NULL Input.Transport.Station0.Rsp0.inputFile = "/tmp/Generator1.out" Input.Transport.Station0.Rsp0.interface = eth1 @@ -128,9 +125,5 @@ BGLProc.MaxConcurrentCommunications = 2 # Variables for Storage Storage.WriteToMAC = F -Storage.StorageStationNames = ["CS10_dipole0", "CS10_dipole4", -"CS10_dipole8", "CS10_dipole12", \ -"CS8_dipole0", "CS8_dipole4", "CS8_dipole8", "CS8_dipole12", \ -"CS1_dipole0", "CS1_dipole4", "CS1_dipole8", "CS1_dipole12", \ -"CS16_dipole0", "CS16_dipole4", "CS16_dipole8", "CS16_dipole12"] +Storage.StorageStationNames = ["CS10_dipole0", "CS10_dipole4","CS10_dipole8", "CS10_dipole12", "CS8_dipole0", "CS8_dipole4", "CS8_dipole8", "CS8_dipole12","CS1_dipole0", "CS1_dipole4", "CS1_dipole8", "CS1_dipole12","CS16_dipole0", "CS16_dipole4", "CS16_dipole8", "CS16_dipole12"] diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Hosts.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Hosts.py index 183750c58ed0f30a86d86cf9e3316e9f5dd0df75..286095bf8737f43642d9231d4ffbf928c3b91c7c 100644 --- a/Appl/CEP/CS1/CS1_Run/src/CS1_Hosts.py +++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Hosts.py @@ -12,7 +12,10 @@ listfen = ClusterFEN(name = 'listfen' , listfen.setSlavesByPattern('list%03d', '10.20.170.%d', range(1, 13)) - +list002 = Host(name = 'list002' , \ + address = '10.20.170.2') +list012 = Host(name = 'list012' , \ + address = '10.20.170.12') hpclf = Host(name = 'hpclf' , \ address = 'hpclf1.service.rug.nl') bglfen1 = Host(name = 'bglfen1', \ diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py index 39be42a5bcf4ae0fdc14641a2011b8e84a785e70..559a770eb0b63a173f402e8eee18806f3351f901 100644 --- a/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py +++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Parset.py @@ -1,5 +1,6 @@ import time import LOFAR_Parset +import math class CS1_Parset(LOFAR_Parset.Parset): @@ -67,6 +68,55 @@ class CS1_Parset(LOFAR_Parset.Parset): def getFirstSubband(self): return self.firstSB + def setBeamdir(self): + beamdir = self.getStringVector('Observation.BeamDirections') + tmp = beamdir[0].split('[') + ra = tmp[1] + + tmp1 = beamdir[1].split(']') + dec = tmp1[0] + + #tests = beamdir.split(",") + #ra = '18:32:45.213' + #dec = '-01:47:26.1' + + torad = math.pi/180.0 + ras=ra.split(":") + + if int(ras[0]) not in range(25): + raise Exception('ras[0]=%d is not in the range 0 to 24' % int(ras[0])) + + if int(ras[1]) not in range(60): + raise Exception('ras[1]=%d is not in the range 0 to 59' % int(ras[1])) + + if float(ras[2]) < float(0.0) or float(ras[2]) > float(60.0): + raise Exception('ras[2]=%f is not in the range 0.0 to 60.0' % float(ras[2])) + + radeg = 15*((int(ras[0])+int(ras[1])/60.0) + (float(ras[2])/3600.0)) # 1hr=15deg + if radeg < 0 or radeg > 360: + raise Exception('ERROR: RA not in the range 0 to 360 degrees') + + decs=dec.split(":") + if int(decs[0]) < -38 or int(decs[0]) > 90: + raise Exception('decs[0]=%d is not in the range -38 to 90' % int(decs[0])) + + if int(decs[1]) not in range(60): + raise Exception('decs[1]=%d is not in the range 0 to 59' % int(decs[0])) + + if float(decs[2]) < float(0.0) or float(decs[2]) > float(60.0): + raise Exception('decs[2]=%f is not in the range 0.0 to 60.0' % float(decs[2])) + + if '-' in dec: # minus sign refers to the whole of the declination + decdeg = (int(decs[0])-int(decs[1])/60.0) - (float(decs[2])/3600.0) + if decdeg < -38: + raise Exception('ERROR: We cannot observe that far south') + else: + decdeg = (int(decs[0])+int(decs[1])/60.0) + (float(decs[2])/3600.0) + if decdeg > 90: + raise Exception('ERROR: There is nowhere north of 90degrees') + + self['Observation.BeamDirections'] = [radeg*torad, decdeg*torad] + def setInterval(self, start, duration): self['Observation.StartTime'] = start self['Observation.StopTime'] = start + duration diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py index d5087019aa0f521dae250901b9c2bb1f6db569ac..33f8757349663add32f182a9b16e1feeb1f5c769 100755 --- a/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py +++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Run.py @@ -21,7 +21,7 @@ def doObservation(obsID, parset): sections = [\ - #DelayCompensationSection(parset, listfen), + DelayCompensationSection(parset, list012), InputSection(parset, liifen), BGLProcSection(parset, bglfen3, 'R000_128_0', '/bglhome2/lofarsystem/'), StorageSection(parset, listfen) @@ -29,7 +29,7 @@ def doObservation(obsID, parset): ] - noRuns = int(parset['Observation.StopTime']) - int(parset['Observation.StartTime']) + noRuns = int(parset['Observation.StopTime']) - int(parset['Observation.StartTime']) - 10 #print int(parset['Observation.StopTime']), int(parset['Observation.StartTime']), noRuns logdir = '/log/' @@ -69,7 +69,7 @@ if __name__ == '__main__': parser.add_option('--clock' , dest='clock' , default='160MHz' , type='string', help='clock frequency (either 160MHz or 200MHz) [%default]') parser.add_option('--subbands' , dest='subbands' , default='60MHz,8' , type='string', help='freq of first subband and number of subbands to use [%default]') parser.add_option('--runtime' , dest='runtime' , default='600' , type='int' , help='length of measurement in seconds [%default]') - parser.add_option('--starttime' , dest='starttime', default=int(time.time() + 100), type='int', help='start of measurement in UTC seconds [now + 100s]') + parser.add_option('--starttime' , dest='starttime', default=int(time.time() + 150), type='int', help='start of measurement in UTC seconds [now + 100s]') parser.add_option('--integrationtime', dest='integrationtime', default='60' , type='int' , help='length of integration interval in seconds [%default]') parser.add_option('--msname' , dest='msname' , type='string', help='name of the measurement set') parser.add_option('--stationlist' , dest='stationlist' , default='CS10_4dipoles', type='string', help='name of the station or stationconfiguration (see CS1_Stations.py) [%default]') @@ -99,7 +99,10 @@ if __name__ == '__main__': parset.setSubbands(first, nsb) # read the runtime (optional start in utc and the length of the measurement) - parset.setInterval(options.starttime, options.runtime) + parset.setInterval(options.starttime, options.runtime+10) + + # convert beamdirections from RA and Dec to Radians + #parset.setBeamdir() # read the stations from CS1_Stations.py # todo: WARNING this is very dangerous, because there could be any code in the station string @@ -115,7 +118,7 @@ if __name__ == '__main__': # see if we are using fake input if options.fakeinput > 0: - parset.setInterval(1, options.runtime) + parset.setInterval(1, options.runtime+10) parset.setInputToMem() # if the msname wasn't given, read the next number from the file @@ -145,6 +148,8 @@ if __name__ == '__main__': dbfile.close() except: MSName = '/data/Test.MS' + print 'Error: please start CS1_Run.py from host: LISTFEN' + sys.exit(1) parset['Storage.MSName'] = MSName diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Sections.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Sections.py index 7b67d79a45c65bcb89fd668062d76a20e2407f1f..824904491f213ba64819a53fc721ed178b4ffc90 100644 --- a/Appl/CEP/CS1/CS1_Run/src/CS1_Sections.py +++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Sections.py @@ -44,12 +44,12 @@ class Section(object): executable = self.workingDir + '/LOFAR/installed/' + self.buildvar + '/bin/' + self.executable, \ noProcesses = self.noProcesses, workingDir = self.workingDir) - else: + else: self.runJob = Job(self.package.split('/')[-1], \ self.host, \ executable = self.workingDir + '/LOFAR/installed/' + self.buildvar + '/bin/' + self.executable, workingDir = self.workingDir) - + parsetfile = '/tmp/' + self.executable + '.parset' self.parset.writeToFile(parsetfile) # For now set the timeout on 100 times the number of seconds to process @@ -94,12 +94,12 @@ class InputSection(Section): Section.__init__(self, parset, \ 'Appl/CEP/CS1/CS1_InputSection', \ host = host, \ - buildvar = 'gnu64_openmpi-opt') + buildvar = 'gnu64_mpich-opt') myslaves = self.host.getSlaves()[self.nrsp : self.nrsp + self.nCells] transposeIPs = [s.getIntName() for s in myslaves] bglprocIPs = [s.getExtIP() for s in myslaves] - self.parset['TransposeHosts'] = '[' + ','.join(transposeIPs) + ']' + #self.parset['TransposeHosts'] = '[' + ','.join(transposeIPs) + ']' self.parset['Connections.Input_BGLProc.ServerHosts'] = '[' + ','.join(bglprocIPs) + ']' def run(self, runlog, noRuns, runCmd = None): @@ -170,7 +170,7 @@ class DelayCompensationSection(Section): Section.__init__(self, parset, \ 'Appl/CEP/CS1/CS1_DelayCompensation', \ host = host, \ - buildvar = 'gnu_opt') + buildvar = 'gnu_debug') class Flagger(Section): def __init__(self, parset, host): diff --git a/Appl/CEP/CS1/CS1_Run/src/CS1_Stations.py b/Appl/CEP/CS1/CS1_Run/src/CS1_Stations.py index b08174860883ff555e03f1432c54bc8de9c77293..b2aad3b20a17658e9b0d410f6d7f467e42b08adc 100644 --- a/Appl/CEP/CS1/CS1_Run/src/CS1_Stations.py +++ b/Appl/CEP/CS1/CS1_Run/src/CS1_Stations.py @@ -26,7 +26,7 @@ class Station(object): self.inputNode = inputNode self.position = position stationNumber = int(name.split('_')[0].split('CS')[-1]) - self.mac = '00:00:00:%02x:01:%02x' % (stationNumber, RSPBoardNumber) + self.mac = '10:fa:00:%02x:01:%02x' % (stationNumber, RSPBoardNumber) def getName(self): return self.name def getInputNode(self): @@ -39,29 +39,31 @@ class Station(object): return inputMACs[self.inputNode - 1] #define the stations as a list so we can easily add them -CS10_dipole0 = [Station('CS10_dipole0' , 1, (3826445.092 , 460923.319 , 5064346.196 ), 0)] -CS10_dipole4 = [Station('CS10_dipole4' , 1, (3826426.4071, 460950.3711, 5064357.7736), 1)] -CS10_dipole8 = [Station('CS10_dipole8' , 2, (3826447.720 , 460917.9109, 5064344.7126), 2)] -CS10_dipole12 = [Station('CS10_dipole12', 3, (3826435.6425, 460938.9631, 5064351.8736), 3)] +#Keep the antenna positions in ITRF coordinates. +#Storing a position on earth given as (lon,lat,height) + +CS10_dipole0 = [Station('CS10_dipole0' , 1, (0.119879729, 0.920274996, 6364097.32 ), 0)] +CS10_dipole4 = [Station('CS10_dipole4' , 1, (0.119887278, 0.920278013, 6364097.26 ), 1)] +CS10_dipole8 = [Station('CS10_dipole8' , 2, (0.119878255, 0.92027461 , 6364097.33 ), 2)] +CS10_dipole12 = [Station('CS10_dipole12', 3, (0.119884052, 0.920276475, 6364097.29 ), 3)] CS10_4dipoles = CS10_dipole0 + CS10_dipole4 + CS10_dipole8 + CS10_dipole12 -CS08_dipole0 = [Station('CS08_dipole0' , 4, (3826314.932 , 460863.1097, 5064449.3196), 0)] -CS08_dipole4 = [Station('CS08_dipole4' , 4, (3826292.4937, 460886.0964, 5064464.0812), 1)] -CS08_dipole8 = [Station('CS08_dipole8' , 5, (3826322.1133, 460979.2737, 5064433.4283), 2)] -CS08_dipole12 = [Station('CS08_dipole12', 6, (3826344.552 , 460956.2871, 5064418.6678), 3)] +CS08_dipole0 = [Station('CS08_dipole0' , 4, (0.119868258 , 0.920301868, 6364096.77 ), 0)] +CS08_dipole4 = [Station('CS08_dipole4' , 4, (0.119874876 , 0.920305715, 6364096.69 ), 1)] +CS08_dipole8 = [Station('CS08_dipole8' , 5, (0.11989796 , 0.920297727, 6364096.85 ), 2)] +CS08_dipole12 = [Station('CS08_dipole12', 6, (0.119891342 , 0.920293881, 6364096.93 ), 3)] CS08_4dipoles = CS08_dipole0 + CS08_dipole4 + CS08_dipole8 + CS08_dipole12 -CS01_dipole0 = [Station('CS01_dipole0' , 7, (3826597.415 , 460830.5359, 5064240.2635), 0)] -CS01_dipole4 = [Station('CS01_dipole4' , 7, (3826574.9777, 460853.5227, 5064255.0255), 1)] -CS01_dipole8 = [Station('CS01_dipole8' , 8, (3826592.2508, 460880.2595, 5064239.6452), 2)] -CS01_dipole12 = [Station('CS01_dipole12', 9, (3826614.688 , 460857.2727, 5064224.8833), 3)] +CS01_dipole0 = [Station('CS01_dipole0' , 7, (0.119851103 , 0.920247393, 6364097.89 ), 0)] +CS01_dipole4 = [Station('CS01_dipole4' , 7, (0.11985772 , 0.92025124 , 6364097.81 ), 1)] +CS01_dipole8 = [Station('CS01_dipole8' , 8, (0.119864071 , 0.920247232, 6364097.9 ), 2)] +CS01_dipole12 = [Station('CS01_dipole12', 9, (0.119857454 , 0.920243385, 6364097.98 ), 3)] CS01_4dipoles = CS01_dipole0 + CS01_dipole4 + CS01_dipole8 + CS01_dipole12 -CS16_dipole0 = [Station('CS16_dipole0' , 10, (3826408.922 , 461224.4683, 5064346.1072), 0)] -CS16_dipole4 = [Station('CS16_dipole4' , 10, (3826386.4833, 461247.4549, 5064360.8674), 1)] -CS16_dipole8 = [Station('CS16_dipole8' , 11, (3826403.7559, 461274.192 , 5064345.4863), 2)] -CS16_dipole12 = [Station('CS16_dipole12', 12, (3826426.195 , 461251.2051, 5064330.7263), 3)] +CS16_dipole0 = [Station('CS16_dipole0' , 10, (0.119958428 , 0.920274973, 6364097.32 ), 0)] +CS16_dipole4 = [Station('CS16_dipole4' , 10, (0.119965046 , 0.920278819, 6364097.24 ), 1)] +CS16_dipole8 = [Station('CS16_dipole8' , 11, (0.119971397 , 0.920274811, 6364097.33 ), 2)] +CS16_dipole12 = [Station('CS16_dipole12', 12, (0.119964779 , 0.920270965, 6364097.41 ), 3)] CS16_4dipoles = CS16_dipole0 + CS16_dipole4 + CS16_dipole8 + CS16_dipole12 Fourstations_4dipoles = CS10_4dipoles + CS01_4dipoles + CS08_4dipoles + CS16_4dipoles - diff --git a/Appl/CEP/CS1/CS1_Run/src/Hosts.py b/Appl/CEP/CS1/CS1_Run/src/Hosts.py index e57db22ac7be6bdeef1d34fd938a03a0234f0f47..f8c4c5df39031c16a5de61535417c24e3bb526af 100644 --- a/Appl/CEP/CS1/CS1_Run/src/Hosts.py +++ b/Appl/CEP/CS1/CS1_Run/src/Hosts.py @@ -12,7 +12,10 @@ class Host(object): def getCVSHost(self): return self.CVSHost - + + def getSSHCommand(self): + return self.sshCommand + def executeAsync(self, commandstr, logfile = '/dev/null', timeout = None): return AsyncThreadCommand(self.sshCommand + ' "' + commandstr + '" >> ' + logfile, timeout) diff --git a/Appl/CEP/CS1/CS1_Run/src/LOFAR_Jobs.py b/Appl/CEP/CS1/CS1_Run/src/LOFAR_Jobs.py index dc6bf888664b2ba1f8a90a05bfd40183895d959d..21027ddd9a80925dab0e41e34f231334245f356d 100644 --- a/Appl/CEP/CS1/CS1_Run/src/LOFAR_Jobs.py +++ b/Appl/CEP/CS1/CS1_Run/src/LOFAR_Jobs.py @@ -61,8 +61,12 @@ class MPIJob(Job): self.createMachinefile() if runCmd == None: runCmd = self.executable - Job.run(self, runlog, parsetfile, timeOut, noRuns, 'mpirun --byslot -np ' + str(self.noProcesses) + \ - ' -machinefile ~/' + self.name + '.machinefile ' + runCmd) + if self.name == 'CS1_InputSection': + Job.run(self, runlog, parsetfile, timeOut, noRuns, 'mpirun_rsh -np ' + str(self.noProcesses) + \ + ' -hostfile ~/' + self.name + '.machinefile ' + runCmd) + else: + Job.run(self, runlog, parsetfile, timeOut, noRuns, 'mpirun -nolocal -np ' + str(self.noProcesses) + \ + ' -machinefile ~/' + self.name + '.machinefile ' + runCmd) def abort(self): print('Aborting ' + self.name) self.host.executeAsync('killall ' + self.name).waitForDone() @@ -94,8 +98,9 @@ class BGLJob(Job): self.jobID = '0' def run(self, runlog, parsetfile, timeOut, noRuns, runCmd): - self.host.executeAsync('cp ' + self.executable + ' ' + self.workingDir).waitForDone() - self.host.sput(parsetfile, self.workingDir) + print 'NOT executing: Immediately executing ' + self.host.getSSHCommand() + ' "cp ' + self.executable + ' ' + self.workingDir + '"' + #self.host.executeAsync('cp ' + self.executable + ' ' + self.workingDir).waitForDone() + self.host.sput(parsetfile, self.workingDir) Job.run(self, runlog, parsetfile, timeOut, noRuns, 'mpirun -partition ' + self.partition + ' -np ' + str(self.noProcesses) + ' -mode VN -label -cwd ' + self.workingDir + ' ' + os.path.join(self.workingDir, self.executable.split('/')[-1]))