Skip to content

Introduction to QuarkServer¤

How to start¤

start
# pip install quarkstudio (if not installed)
# init or update: quark init/update --mode=server
quark server

QuarkServer¤

  • Create folder ~/Desktop/home/cfg and place the cfg file(e.g., checkpoint.json) in it.

  • Run quark server in a terminal and you'll see the following information if everything is OKalt text

  • Once the QuarkServer is ready, run quark studio in another termnal. Click Signup and fill the username and system name(i.e., the cfg filename checkpoint) in the corresponding blanks and click Sign up.alt text

  • Fill the username and password in the Login window。alt text

FAQ¤

cfg structure?¤

server accept json(see checkpoint above) as input and there is no restriction on the file content. Traditionally, the cfg file includes user-defined fields(qubits, couplers, gates and so on) and system-defined fields(etc, dev)

what is dev?¤

dev stores device information

{
    "dev": {
        'awg':{ # alias of the device
            "addr": "192.168.3.48", # IP address of the device
            "name": "VirtualDevice", # filename of the driver
            "srate": 1000000000.0, # sampling rate(defined by the srate attribute in the driver class)
            "type": "driver", # connection type, driver or remote
            "host": "useless", # IP address of the host computer(required only if the type is remote)
            "port": "useless" # service port(required only if the type is remote)
        }
}

what is etc?¤

etc mainly includes some global settings, such as the MAPPING

{
    "etc": {
        "driver": {
            "path": "~/Desktop/home/dev", # full driver path
            "concurrent": True, # open device concurrently if True
            "timeout": 30.0, # device execution timeout
            "filter": ["send Waveform or np.array to device in the list"],
            "mapping": { # mapping between logical channel and hardware channel
                "setting_LO": "LO.Frequency", # see driver for more details about device attributes
                "setting_POW": "LO.Power",
                "setting_OFFSET": "ZBIAS.Offset",
                "waveform_RF_I": "I.Waveform",
                "waveform_RF_Q": "Q.Waveform",
                "waveform_TRIG": "TRIG.Marker1",
                "waveform_DDS": "DDS.Waveform",
                "waveform_SW": "SW.Marker1",
                "waveform_Z": "Z.Waveform",
                "setting_PNT": "ADC.PointNumber",
                "setting_SHOT": "ADC.Shot",
                "setting_TRIGD": "ADC.TriggerDelay"
            },
        },
        "server": {
            "workers": 1, # number of compilation processes
            "shared": 0,
            "delay": 10.0, # maximum delay(in the unit of second) for feed
            "cached": 5, # number of cached task
            "review": [0, 1, 10], # index of cached step
            "filesize": 4000.0 # maximum size of an hdf5 file
        },
        "canvas": {
            "range": [0, 0.0001], # time range in QuarkCanvas
            "filter": ['Q0','Q3'] # targets to be displayed in QuarkCanvas
        }
    }
}