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.

Guide here.

Upgraded Office Plans

Our office plans have been upgraded! This is the new layout of the office plan. Compared to the previous one, there are a few changes.

Firstly, the lounge area has been turned into another meeting area. The sofa has been removed. This mini meeting area is particularly suitable for close discussions where people work on a shared piece of paper. There is a TV nearby for presentations. This area is furnished with a small Melltorp (098.682.37) table and Snille (298.750.05) visitor chairs.

Next, half-height Billy (801.800.97) book-cases are added to the reception area. These are used to store administrative documents. It basically replaces a big filing cabinet. There are also a few decorative pots placed on the shelves to spruce up the internal ambiance. The networked printer and scanner is also kept here.

Finally, the work-stations have been improved with the addition of Billy (801.801.01) book cases. Instead of having wall-shelves to keep things, I decided to go all the way and plaster the entire space with 2 metre tall book cases. The shelves are used to as storage for books, files, personal effects and also computers.

I’d just like to highlight that these are plans and the actual office is about two-thirds the way there in terms of the purchased furniture and the layout. We are doing this in stages are our needs grow and the anticipation on seeing it fully furnished is quite fun.

DistCC Workstation Cluster

Another good thing to do with a bunch of work-stations is to combine their computing capabilities to speed up complex tasks. One such complex task in an engineering company is compiling code. Thankfully, there are useful solutions to this problem that can be implemented easily.

Guide here.

It took about 15 minutes to install and setup distcc as the distributed compiler. What this does is to spread out C/C++ code compilation across a number of machines. Best thing about it is that it uses Bonjour, Zeroconf, or mDNS to configure itself. Therefore, it needed minimal configuration.

Make went from -j8 up to -j32 with the use of distcc. I have not benchmarked a kernel compile yet but I have successfully tested the ability of distcc to spawn jobs across the networked work-stations.

Nice.

PS: It’s supposed to work with cross-compilers as well but I have yet to successfully test this out. We will definitely be needing this feature as we work primarily with non-Intel architectures.

GlusterFS Workstation Cluster

At our office, there are a number of work-stations used for development work. However, I have a small concern about the safety of the files on these machines because they are all stored on a local hard-disk. The traditional method of backing-up would involve the use of a file-server and backing up the data onto it.

That model of data backup is still a valid one. However, seeing that there are already a number of work-stations in the office, it did not make a lot of sense to setup another file-server for this purpose, especially since each work-station has at least a 500GB hard-disk in it. Furthermore, this would just move the point-of-failure to the file-server instead.

Guide here.

There had to be a better way to do this – and there is a way to distribute and replicate files over the work-stations so that there are multiple copies of the data everywhere, to prevent single points of failure killing someone’s work. After some quick research, it seems that GlusterFS is the preferred production method for turning a bunch of networked computers into a scalable storage network.

It was very easy to set up. It took me less than an hour to get a basic replication cluster working. Now, each and every work-station in the office is part of a replicating storage network running both as a Gluster server and client.

In addition, to the file redundancy that this provides, it also allows a person to hot-desk easily. A developer can use any machine on the network because his/her home directory is already replicated on all the work-stations. Again, the typical way of doing this is via an NFS mounted home-directory but the NFS server would just introduce a single-point of failure for the office.

GlusterFS and others of its ilk, are very useful in this respect. Sure, there are caveats.

For example, at least two work-stations need to be running in order to have replication working correctly. This can be easily solved by just letting everyone know this and keeping at least two machines running at a time. Another way to solve this would be to keep a separate file-server running 24/7 in the server room, as a replication node or leaving all the work-stations running all the time. Our guide to setting up GlusterFS is on our wiki.

I do not have any numbers but it seems to run fine on a 100Mbps network. However, as the workloads increase, I foresee upgrading the network at some point in the near future.

PS: I am amazed at how well this actually works!

Unifi is Coming

Earlier this week, there was some construction work along a side-road leading away from the office. At first, I did not know what it was until I took a closer look – they were contractors installing a couple of large enclosures for Unifi – our national optical fibre broadband service.

This means that the area around the office has been earmarked for the next stage of fibre deployment. Although I was not sure when the office would be covered, I was confident that it would arrive at some point since the area next to the office is already covered.

However, from my observations at other areas, it takes a while for them to go from infrastructure deployment through to network activation and selling the service. Therefore, I think that it will be near Christmas before I get fibre at the office.

From the size and distance of the installation, I assume that they are setting up a Fibre-to-the-Curb (FTTC) system. Our office block was not built with the necessary internal ethernet wiring. Therefore, we will probably be using VDSL at the last mile.

That said, I am looking forward to upgrading our Internet connection to something much faster. The basic BIZ5 5Mbps package actually costs the same as my current package, but comes with more than twice the speed.

There are some interesting things that I plan to do, with the server room, once fibre makes its way here.

Follow

Get every new post delivered to your Inbox.