efabless / cace

Circuit Automatic Characterization Engine
https://cace.readthedocs.io/
Apache License 2.0
35 stars 6 forks source link

Multiprocessing rewrite #48

Closed mole99 closed 2 months ago

mole99 commented 3 months ago

This PR is still a work in progress. During restructuring, I definitely broke a few things.

Needs testing/more work:

Known issues:

Future work:

RTimothyEdwards commented 3 months ago

@mole99 : Do you have any idea why I'm getting this error?:

Exception in thread Thread-86:
Traceback (most recent call last):
  File "/usr/lib64/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/home/tim/gits/cace/cace/common/physical_parameter.py", line 54, in run
    cancel_point()
NameError: name 'cancel_point' is not defined

It doesn't make sense to me because cancel_point is clearly defined right below run. . .

RTimothyEdwards commented 3 months ago

@mole99 : FYI, I get an error related to a commit I made recently; results may not exist when running makeplot. cace_makeplot.py at line 605 should check for results first:

    if 'results' in param:
        results = param['results']
        if isinstance(results, dict):
            results = [results]
        try:
            resultdict = next(
                item for item in results if item['name'] == netlist_source
            )
        except:
            resultdict = {}
    else:
        resultdict = {}
RTimothyEdwards commented 3 months ago

FYI: "unique identifier" is from a deprecated feature. I used to use the name of the testbench as the name of the parameter. When the testbench was used for more than one parameter, the parameter would be given a unique identifier by appending a number to it. I eventually realized how stupid that was and just created a new record called "name" for the parameters, and "name" is always required to be unique, so there is no longer any need for the "unique identifier". I thought I had removed all references to it, but apparently I missed at least one.