Skip to content
Snippets Groups Projects
Commit 876a3c1b authored by Andreas Westerwick's avatar Andreas Westerwick
Browse files

parallel processing

parent 4143eb50
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,9 @@ import sys
import os
import gdspy
import multiprocessing
from joblib import Parallel, delayed
orig_box_width=10.
orig_box_spacing=10.
......@@ -126,17 +129,8 @@ def generate_gds_file(layout_path,cellname):
cell=cell.add(gdspy.Rectangle(p11, p12, 1))
cell=cell.add(gdspy.Rectangle(p21, p22, 1))
cell=cell.flatten()
for layername in layer_mapping:
ncell=cell.copy(layername,deep_copy=True)
thelayers=layer_mapping[layername]
ncell=ncell.remove_polygons(lambda pts, layer, datatype: layer not in thelayers)
ncell=ncell.add(gdspy.Rectangle(p11, p12, 1))
ncell=ncell.add(gdspy.Rectangle(p21, p22, 1))
ncell=ncell.flatten(single_layer=1,single_datatype=1)
newgdsii=gdspy.GdsLibrary("mask_"+layername)
newgdsii.add(ncell)
newgdsii.write_gds(layout_path+"/gds/mask_"+layername+".gds")
num_cores = multiprocessing.cpu_count() - 2
Parallel(n_jobs=num_cores, verbose=50)(delayed(split_task)(p11,p12,p21,p22,cell,layername)for layername in layer_mapping)
except Exception as e:
print("Can't do this:"+e)
......@@ -144,6 +138,20 @@ def generate_gds_file(layout_path,cellname):
if '-s' in sys.argv:
gdspy.LayoutViewer()
def split_task(p11,p12,p21,p22,cell,layername):
ncell=cell.copy(layername,deep_copy=True)
thelayers=layer_mapping[layername]
ncell=ncell.remove_polygons(lambda pts, layer, datatype: layer not in thelayers)
ncell=ncell.add(gdspy.Rectangle(p11, p12, 1))
ncell=ncell.add(gdspy.Rectangle(p21, p22, 1))
ncell=ncell.flatten(single_layer=1,single_datatype=1)
newgdsii=gdspy.GdsLibrary("mask_"+layername)
newgdsii.add(ncell)
newgdsii.write_gds(layout_path+"/gds/mask_"+layername+".gds")
print(layername)
def show_help():
print("-n cellname:\tname of the cell to export")
print("-l:\t\tswitch to render library cells because default is layout cells")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment