Clustering Icarus Verilog
Icarus Verilog is a popular open-source digital circuit simulator distributed as part of gEDA. While it is a fast simulator, it runs largely single-threaded and does not exploit the modern developments in computing. Depending on the complexity of the circuit involved, a single simulation run can be fairly time consuming.
At AESTE, we are using our cluster of workstations to perform parallel simulation runs. While a single simulation run is still time-consuming and it cannot distributed, we can perform N number of simulations in parallel, giving a N factor speed-up in results collection.
This method also exploits our local GlusterFS cluster to maintain consistency between the files accessed on each workstation. The same input file can be accessed on all the workstations while the intermediate files are stored on each local workstation. This required changing certain parts of the simulation script so that it would use the local /tmp to store the simulation files.
Next, cluster ssh is used to execute the commands in parallel on different hosts. This speeds up the amount of data collected within a time period. The next step would be to investigate the use of a more generic grid-engine system for this. We will be looking into this in the future.