有没有办法可以修改下面的代码来并行执行子流程中的matlab字段求解器命令?
下面的代码解析xml文件并使用不同的文件名创建8000个副本,并根据for循环更改参数,然后调用matlab字段求解器按顺序解析每个文件。
顺序运行它们既耗时又简单乏味,所以我想知道是否有一种方法可以修改它,这样它可以打开4-5个终端并并行运行4-5个xml文件?它确实会减少运行所有这些文件的时间。
from lxml import etree as ET
#import xml.etree.ElementTree as ET
import subprocess
import os
def frange(start, end, step):
tmp = start
while(tmp <= end):
yield tmp
tmp += step
#print os.getcwd()
os.chdir('C:\Users\Aravind_Sampathkumar\Desktop\IMLC')
#print os.getcwd()
fileCount = 1
tree = ET.parse('C:\Users\Aravind_Sampathkumar\Desktop\IMLC\BO\IMLC_v4p8_Aravind.xml')
#tree = ET.fromstring(xml)
root = tree.getroot()
#print(root.attrib)
# print child.tag, child.attrib
#import py2exe
#print root[3].attrib
for child in root.iter('Traces'):
child.find('TS')
child.find('TW')
for i in frange(3,12.75,0.25):
child.set('TS',str(i))
for k in frange(3,12.75,0.25):
child.set('TW',str(i))
for child2 in root.iter('Stackup'):
child2.find('core_h')
for j in frange(2,4,0.5):
for child3 in root.iter('Definition'):
child3.set('modelname', 'Output{}.xml'.format(fileCount))
child2.set('core_h',str(j))
tree.write('C:\Users\Aravind_Sampathkumar\Desktop\IMLC\BO\Output{}.xml'.format(fileCount))
subprocess.call(['imlc.exe','C:\Users\Aravind_Sampathkumar\Desktop\IMLC\BO\Output{}.xml'.format(fileCount)],shell=True)
fileCount = fileCount+1
# for j in frange(2,4,0.5):