Prev: Design Methodology Up: Contents Next: Platform Decision

Initial Overall Design

It was immediately apparent that there would be two parts to the simulator. There would be the actual simulation code itself, which I called the core simulator, and there would be a front end to the simulator. It is the very nature of front ends that they usually end up machine dependent. The core simulator, however, had no need to be machine dependent. The decision was taken to try to implement the core simulator using code which was as portable as possible. This separation of the front end from the core simulator meant that the two could be separately implemented.

By this stage of the project my research in to the core simulation code had only just begun. I had a number of ideas as to possible methods but not enough confidence in my methods to start a design of the simulator. I was very aware of the short deadlines and I was keen to start designing and implementing the project. The front end, independent of the simulator, was the obvious component to start implementing while continuing my research in to possible designs for the core simulator. It could be argued that I should have completed my research in to the simulator before starting to work on the front end. I have two reasons for disagreeing with that view. Firstly, my own personal experience tells me that I work best when I have a variety of tasks to keep myself occupied. Secondly, there were times when I couldn't perform any research, such as when the library was closed, which I could spend working on the front end.

My first impression for the front end was to use some sort of graphical user interface that allowed the user to set any simulation parameters and call the simulator. Results would have to be returned from the simulator to the user via the front end. Also, for debugging purposes, it would be useful to get some sort of text output from the simulator. I decided therefore, to design the front end as a standard windowing application with menu bars, buttons, dialogue boxes and a text window for simulation output. However, this project is about simulating a quantum circuit, not providing a slick graphical application. My priorities lay with the simulator and I envisaged that the front end should not occupy more than about 10% of the total work involved.


Prev: Design Methodology Up: Contents Next: Platform Decision

This web page (c) 2000 Jon Marshall. Last updated 3rd June 2000