Patent Publication Number: US-2023153148-A1

Title: Quantum isolation zones

Description:
BACKGROUND 
     Quantum computing utilizes qubits to perform quantum calculations. Qubits are finite resources. As quantum computing continues to increase in popularity and become more commonplace, an ability to programmatically coordinate access to qubits will be desirable. 
     SUMMARY 
     The examples disclosed herein implement quantum isolation zones that ensure a quantum process can only access qubits allocated to the quantum isolation zone in which the quantum process executes and has no visibility to or ability to access qubits allocated to other quantum isolation zones or that are otherwise implemented on the quantum computing system. 
     In one example a method is provided. The method includes receiving, by a quantum isolation zone (QIZ) controller executing on a quantum computing system from a first requestor, a first request to allocate a first group of qubits from a plurality of available qubits that are implemented by the quantum computing system and to establish a first QIZ that limits qubit visibility of any quantum process associated with the first QIZ to the qubits in the first group of qubits. The method further includes selecting, by the QIZ controller, the first group of qubits from the plurality of available qubits. The method further includes obtaining a unique first QIZ identifier (QIZID) that uniquely identifies the first QIZ. The method further includes modifying qubit metadata of the first group of qubits to indicate that each qubit in the first group of qubits is associated with the first QIZ. 
     In another example a quantum computing system is provided. The quantum computing system includes a memory, and a processor device coupled to the memory. The processor device is to receive, by a quantum isolation zone (QIZ) controller from a first requestor, a first request to allocate a first group of qubits from a plurality of available qubits that are implemented by the quantum computing system and to establish a first QIZ that limits qubit visibility of any quantum process associated with the first QIZ to the qubits in the first group of qubits. The processor device is further to select, by the QIZ controller, the first group of qubits from the plurality of available qubits. The processor device is further to obtain a unique first QIZ identifier (QIZID) that uniquely identifies the first QIZ, and modify qubit metadata of the first group of qubits to indicate that each qubit in the first group of qubits is associated with the first QIZ. 
     In another example a non-transitory computer-readable storage medium is provided. The non-transitory computer-readable storage medium includes executable instructions to cause a processor device on a quantum computing system to receive, by a quantum isolation zone (QIZ) controller from a first requestor, a first request to allocate a first group of qubits from a plurality of available qubits that are implemented by the quantum computing system and to establish a first QIZ that limits qubit visibility of any quantum process associated with the first QIZ to the qubits in the first group of qubits. The instructions further cause the processor device to select, by the QIZ controller, the first group of qubits from the plurality of available qubits. The instructions further cause the processor device to obtain a unique first QIZ identifier (QIZID) that uniquely identifies the first QIZ, and modify qubit metadata of the first group of qubits to indicate that each qubit in the first group of qubits is associated with the first QIZ. 
     Individuals will appreciate the scope of the disclosure and realize additional aspects thereof after reading the following detailed description of the examples in association with the accompanying drawing figures. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure. 
         FIGS.  1 A- 1 F  are block diagrams of an environment, at successive points in time, in which quantum isolation zones can be practiced according to one implementation; 
         FIG.  2    is a flowchart of a method for implementing quantum isolation zones according to one implementation; 
         FIG.  3    is a simplified block diagram of the environment illustrated in  FIG.  1    according to one implementation; and 
         FIG.  4    is a block diagram of a quantum computing system suitable for implementing the examples disclosed herein. 
     
    
    
     DETAILED DESCRIPTION 
     The examples set forth below represent the information to enable individuals to practice the examples and illustrate the best mode of practicing the examples. Upon reading the following description in light of the accompanying drawing figures, individuals will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims. 
     Any flowcharts discussed herein are necessarily discussed in some sequence for purposes of illustration, but unless otherwise explicitly indicated, the examples are not limited to any particular sequence of steps. The use herein of ordinals in conjunction with an element is solely for distinguishing what might otherwise be similar or identical labels, such as “first message” and “second message,” and does not imply a priority, a type, an importance, or other attribute, unless otherwise stated herein. The term “about” used herein in conjunction with a numeric value means any value that is within a range of ten percent greater than or ten percent less than the numeric value. As used herein and in the claims, the articles “a” and “an” in reference to an element refers to “one or more” of the element unless otherwise explicitly specified. The word “or” as used herein and in the claims is inclusive unless contextually impossible. As an example, the recitation of A or B means A, or B, or both A and B. 
     Quantum computing utilizes qubits to perform quantum calculations. Qubits are finite resources, but as the technology evolves, quantum computing systems are implementing larger and larger numbers of qubits. As quantum computing continues to increase in popularity and become more commonplace, it is increasingly important for the operating system to control access to qubits to, for example, ensure that one quantum process does not inadvertently access a qubit utilized by another quantum process, ensure that qubits containing private information can only be accessed by quantum processes that should have access to such private information, and to generally isolate one quantum process from another quantum process. 
     The examples disclosed herein implement quantum isolation zones (QIZs) that ensure a quantum process can only access qubits allocated to the QIZ in which the quantum process executes, and has no visibility to or ability to access qubits allocated to other QIZs or that are otherwise implemented on the quantum computing system. The examples also implement quantum process relationship graphs that facilitate visibility of qubits by a plurality of quantum processes that execute within a QIZ and that have relationships with one another. A first quantum process executing in a QIZ that is not related to a second quantum process executing in the same QIZ has no visibility to the qubits allocated to the second quantum process. Thus, the examples facilitate isolation even within the same QIZ, or qubit sharing within the same QIZ among related quantum processes. 
       FIGS.  1 A- 1 F  are block diagrams of an environment, at successive points in time, in which QIZs can be practiced according to one implementation. Referring first to  FIG.  1 A , the environment  10  includes a quantum computing system  12  that operates in a quantum environment but can operate using classical computing principles or quantum computing principles. When using quantum computing principles, the quantum computing system  12  performs computations that utilize quantum-mechanical phenomena, such as superposition and entanglement. The quantum computing system  12  may operate under certain environmental conditions, such as at or near 0° Kelvin. When using classical computing principles, the quantum computing system  12  utilizes binary digits that have a value of either 1 or 0. 
     The quantum computing system  12  includes at least one processor device  14  and at least one memory  16 . The quantum computing system  12  implements twelve qubits  18 - 1 - 18 - 12  (generally, qubits  18 ). The quantum computing system  12  includes a qubit registry  20  that maintains information about the qubits  18 - 1 - 18 - 12 , including, by way of non-limiting example, a total qubits counter  22  that identifies the total number of qubits  18  implemented by the quantum computing system  12  and a total available qubits counter  24  that maintains count of the total number of qubits  18  that are currently available for allocation. 
     The qubit registry  20  also maintains qubit metadata  26 , which comprises a plurality of metadata records  28 - 1 - 28 - 12  (generally, metadata records  28 ), each of which maintains information about a corresponding qubit  18 - 1 - 18 - 12 . Each metadata record  28  includes a qubit identifier (QID)  29  that contains an identifier of the qubit  18 - 1 - 18 - 12  to which the respective metadata record  28  corresponds, a system availability status (SAS)  30  that identifies whether the corresponding qubit  18  is available for allocation at the quantum computing system level, a QIZ identifier (QIZID)  32  that identifies the QIZ, if any, to which the corresponding qubit  18  has been allocated, and a QIZ availability status (QIZAS)  34  that identifies whether the corresponding qubit  18 , if allocated to a QIZ, is available in the QIZ or has been allocated to a quantum process executing in the QIZ. Each metadata record  28  also includes a process identifier  36  of the quantum process, if any, to which the corresponding qubit  18  has been allocated, a parent identifier  38  that identifies a parent quantum process, if any, of the quantum process to which the corresponding qubit  18  has been assigned, and a child identifier  40  that identifies a child quantum process, if any, of the quantum process to which the corresponding qubit  18  has been assigned. Each metadata record  28  may also include additional metadata  42  not relevant to the examples disclosed herein, such as metadata indicating a real-time state of the corresponding qubit  18 , such as whether the qubit  18  is in an entangled state, is in superposition, or the like. While solely for purposes of illustration the quantum computing system  12  is described as having only twelve qubits  18 , it is apparent that the quantum computing system  12  may have hundreds or thousands of qubits  18  in some implementations. 
     At the point in time illustrated in  FIG.  1 A , the qubits  18  are unallocated, and thus, the system availability status  30  for each metadata record  28  has a value of “A” indicating that the corresponding qubit  18  is available. The values of the other fields in the metadata records  28  are “NULL”, which can comprise any value that indicates that the field is empty. 
     The quantum computing system  12  includes a QIZ controller  44  that, as described in greater detail below, operates to establish QIZs in which quantum processes execute and have access to allocated qubits  18 , but no access or only controlled access to qubits  18  allocated to other QIZs. The quantum computing system  12  includes a task manager  46  that is configured to initiate a quantum process from a quantum program file, such as a quantum assembly language (QASM) file, or the like. In this example, a storage device  48  contains a plurality of QASM files  50 - 1 - 50 -N, each of which includes quantum programming instructions that, when executed, implement a desired functionality. 
     The quantum computing system  12  may include a QIZ allocation user interface (UI)  52  that allows an operator  54  to interact with the QIZ controller  44  to establish a QIZ. The quantum computing system  12  may also include an operating system (OS) qubit interface  56  that is invoked when a quantum process attempts to read, write, or otherwise query a qubit  18 . The OS qubit interface  56 , in turn, communicates with the QIZ controller  44 , or, in other implementations, the QIZ controller  44  may be integrated with the OS qubit interface  56 . 
     Assume that the QIZ controller  44  receives a request from a requestor to allocate a first group of qubits  18  from available qubits  18  to establish a first QIZ that limits visibility of any quantum process associated with the first QIZ to only the qubits  18  in the first group of qubits  18 . The request may identify the number of qubits  18  and, if applicable, other criteria, such as a particular type of qubit, or any other desired characteristics of the qubits  18 . 
     In one example, the requestor may be the QIZ allocation UI  52  which makes the request in response to input from the operator  54 . In another example, the request may be a programmatic request from a process executing on the quantum computing system  12  or elsewhere. In this example, the request indicated that six qubits  18  were to be allocated to the QIZ. The request may come directly to the QIZ controller  44 , or indirectly via the OS qubit interface  56 . The QIZ controller  44  accesses the qubit metadata  26  and identifies six qubits  18  that have a system availability status  30  that indicates the qubits  18  are available. In this example, the QIZ controller  44  determined that the six qubits  18 - 1 - 18 - 6  were available based on the system availability status  30  of the metadata records  28 - 1 - 28 - 6 . 
     Referring now to  FIG.  1 B , the QIZ controller  44  modifies the system availability status  30  of the metadata rows  28 - 1 - 28 - 6  with a value of “NA” (not available) to indicate that the six qubits  18 - 1 - 18 - 6  are no longer available for allocation. The QIZ controller  44  obtains a unique QIZ identifier, in this example, “Z1”, and modifies the QIZ ID  32  to indicate that the qubits  18 - 1 - 18 - 6  have been allocated to the QIZ Z1. The QIZ controller  44  may generate the unique QIZ ID or be provided the unique QIZ ID by the requestor or some other mechanism. The QIZ controller  44  modifies the QIZ availability status  34  to indicate that the qubits  18 - 1 - 18 - 6  are available for allocation within the QIZ Z1. The QIZ controller  44  modifies the total available qubits counter  24  to indicate that six qubits  18  (i.e., qubits  18 - 7 - 18 - 12 ) are now available for allocation to a QIZ. 
     For purposes of illustration, a logical QIZ Z1 is illustrated in dashed lines in the Figures to facilitate an understanding of the isolation and relationship aspects of QIZs implemented by the examples herein. However, it should be understood that the QIZ Z1 illustrated in the Figures in dashed outline is a logical depiction only provided for ease of understanding and that the functionality of the QIZ Z1 is implemented via the QIZ controller  44 , the qubit metadata  26 , and other components as described herein. 
     Assume that the task manager  46  receives a request to initiate a quantum process based on the QASM file  50 - 1  into the QIZ Z1. The request may be contained in a schedule, may be received programmatically, or may be initiated via input from the operator  54 . The task manager  46  may access the QASM file  50 - 1  and parse the QASM file  50 - 1  to determine that, during execution, a quantum process initiated from the QASM file  50 - 1  will utilize two qubits  18 . In other implementations, the number of qubits  18  to be allocated to the quantum process may be contained in the request to initiate the quantum process. The task manager  46  sends a request to the QIZ controller  44  for an allocation of two qubits  18  from the QIZ Z1. The QIZ controller  44  receives the request to allocate two qubits  18  in the QIZ Z1 to a quantum process that is, or will be, associated with the QIZ Z1. Based on the metadata records  28 , the QIZ controller  44  determines that the qubits  18 - 1  and  18 - 2  are available for allocation within the QIZ Z1. 
     Referring now to  FIG.  1 C , the QIZ controller  44  modifies the QIZ availability status  34  of the metadata records  28 - 1  and  28 - 2  to indicate that the corresponding qubits  18 - 1  and  18 - 2  have been allocated and thus are no longer available for allocation (e.g., “NA”). The QIZ controller  44  provides the qubit IDs of the qubits  18 - 1  and  18 - 2  to the task manager  46 . The task manager  46  initiates a quantum process  60  (“PA”) into the QIZ Z1 with location/address information of the qubits  18 - 1  and  18 - 2 . The task manager  46  provides a unique program ID (PID) of the quantum process  60  (“PA_PID”) to the QIZ controller  44 . The QIZ controller  44  maintains a mapping record  62  that maps the PID to the QIZ Z1. The quantum process  60  is now said to “execute in” or be “associated with” the QIZ Z1, because the visibility of and access to the qubits  18 - 1 - 18 - 12  is now constrained by the QIZ Z1. 
     As an example, assume that, at the point in time illustrated in  FIG.  1 C , the quantum process  60  issues a request to the OS qubit interface  56  to obtain a list of qubit IDs of all qubits  18  to which the quantum process  60  has access (i.e., read access and/or write access) or which are available for allocation. The OS qubit interface  56  communicates with the QIZ controller  44 . The QIZ controller  44  determines the PID of the requestor, in this case the PID PA_PID, which is the PID of the quantum process  60 . The QIZ controller  44  accesses the mapping record  62  and determines that the quantum process  60  is associated with the QIZ Z1. The QIZ controller  44  accesses the metadata records  28  and determines that the qubits  18 - 1 - 18 - 6  have been allocated to the QIZ Z1, and that the four qubits  18 - 3 - 18 - 6  are available. Because the qubits  18 - 1  and  18 - 2  have already been allocated to the quantum process  60 , and the four qubits  18 - 3 - 18 - 6  are available, the QIZ controller  44  returns the qubit IDs of the qubits  18 - 1 - 18 - 6  to the quantum process  60  via the OS qubit interface  56 , indicating that the quantum process  60  has access to the qubits  18 - 1  and  18 - 2  and that the qubits  18 - 3 - 18 - 6  are available for allocation. Thus, from the perspective of the quantum process  60 , the quantum computing device  12  contains four available qubits  18 , and the quantum process  60  is unaware of and unable to access (e.g., is isolated from) the actual additional available qubits  18 - 7 - 18 - 12 . 
     Assume that, in response to the information that the qubits  18 - 3 - 18 - 6  are available, the quantum process  60  issues a request to the OS qubit interface  56  to have an additional qubit  18  allocated to the quantum process  60 . The OS qubit interface  56  provides the request to the QIZ controller  44 . The QIZ controller  44  then selects one of the qubits  18 - 3 - 18 - 6 , modifies the appropriate metadata record  28  to indicate the qubit  18  is now allocated to the quantum process  60 , and returns information to the quantum process  60  identifying the allocated qubit  18 . Note that this is merely an example of a potential action that the quantum process  60  may take, and is thus not reflected in the metadata records  28  illustrated in  FIG.  1 C . 
     Assume that the task manager  46  receives a request to initiate a quantum process based on the QASM file  50 - 2  into the QIZ Z1. The task manager  46  may access the QASM file  50 - 2  and parse the QASM file  50 - 2  to determine that, during execution, the quantum process will utilize one qubit  18 . The task manager  46  sends a request to the QIZ controller  44  for an allocation of one qubit  18  from the QIZ Z1. The QIZ controller  44  receives the request to allocate one qubit in the QIZ Z1 to a quantum process that is, or will be, associated with the QIZ Z1. Based on the metadata records  28 , the QIZ controller  44  determines that the qubit  18 - 3  is available for allocation within the QIZ Z1. Referring now to  FIG.  1 D , the QIZ controller  44  modifies the QIZ availability status  34  of the metadata row  28 - 3  to indicate that the corresponding qubit  18 - 3  has been allocated and thus is no longer available for allocation (e.g., “NA”). 
     The QIZ controller  44  provides the qubit ID of the qubit  18 - 3  to the task manager  46 . The task manager  46  initiates a quantum process  64  (“PB”) into the QIZ Z1 with location information of the qubit  18 - 3 . The task manager  46  provides a unique PID of the quantum process  64  (“PB_PID”) to the QIZ controller  44 . The QIZ controller  44  maintains a mapping record  66  that maps the PID to the QIZ Z1. The quantum process  64  is now said to “execute in” or be “associated with” the QIZ Z1. 
     Assume that, at the point in time illustrated in  FIG.  1 D , subsequent to the allocation of the qubit  18 - 3  to the quantum process  64 , the quantum process  60  issues a request to the OS qubit interface  56  to obtain a list of qubit IDs of all qubits  18  to which the quantum process  60  has access (i.e., read access and/or write access) and which are available for allocation. The OS qubit interface  56  communicates with the QIZ controller  44 . The QIZ controller  44  determines the PID of the requestor, in this case the PID PA_PID, which is the PID of the quantum process  60 . The QIZ controller  44  accesses the mapping record  62  and determines that the quantum process  60  is associated with the QIZ Z1. The QIZ controller  44  accesses the metadata records  28  and determines that the qubits  18 - 1 - 18 - 6  have been allocated to the QIZ Z1, the qubit  18 - 3  has been allocated to the quantum process  64 , and that the three qubits  18 - 4 - 18 - 6  are available. Based on the metadata record  28 - 3 , the QIZ controller  44  determines that the quantum process  64  is not related to the quantum process  60  because the parent identifier  38  and the child identifier  40  are NULL, indicating that the quantum process  60  has no parent process or child process at this time. Because the quantum process  60  and the quantum process  64  are unrelated, the quantum process  64  has no visibility to or access to qubits  18  allocated to the quantum process  60 , and the quantum process  60  has no visibility to or access to qubits  18  allocated to the quantum process  64 . 
     Because the qubit  18 - 3  has been allocated to the quantum process  64 , and the three qubits  18 - 4 - 18 - 6  are available, the QIZ controller  44  returns the qubit IDs of the qubits  18 - 1 ,  18 - 2 ,  18 - 4 - 18 - 6  to the quantum process  60  via the OS qubit interface  56 , indicating that the quantum process  60  has access to the qubits  18 - 1  and  18 - 2 , and that the qubits  18 - 4 - 18 - 6  are available for allocation. The quantum process  60  is thus unaware of the qubit  18 - 3  or the qubits  18 - 7 - 18 - 12 . 
     Referring now to  FIG.  1 E , a QIZ relationship graph that establishes relationships among quantum processes in a QIZ will be discussed. Assume that, in a manner similar to that discussed above with regard to the quantum processes  60  and  64 , a quantum process  68  (“PC”) is initiated from the QASM file  50 - 3  into the QIZ Z1 and allocated the qubit  18 - 4 . The QIZ controller  44  generates a mapping record  70  that maps the PID of the quantum process  68  (“PC_PID”) to the QIZ Z1. However, in this example, the quantum process  68  is identified as a child process of the quantum process  60 . The designation may occur in any of several different manners. In one implementation, the task manager  46  may communicate to the QIZ controller  44  that the quantum process  68  is to be designated a child process of the quantum process  60 . In another example, the request to initiate the quantum process  68  from the QASM file  50 - 3 , and to allocate a qubit  18  to the quantum process  68 , may originate from the quantum process  60 . In this example, the act of the quantum process  60  requesting the initiation of the quantum process  68  by itself identifies the parent-child relationship. 
     The QIZ controller  44  modifies the QIZ availability status  34  of the metadata record  28 - 4  to indicate that the qubit  18 - 4  is no longer available for allocation. The QIZ controller  44  modifies the process identifier  36  of the metadata record  28 - 4  to indicate that the qubit  18 - 4  is allocated to the quantum process  68 . The QIZ controller  44  modifies the parent identifier  38  of the metadata record  28 - 4  to indicate that the quantum process  60  is a parent process of the quantum process  68 . The QIZ controller  44  modifies the child identifier  40  of the metadata records  28 - 1  and  28 - 2  to indicate that the quantum process  68  is a child process of the quantum process  60 . 
     Assume further that a quantum process  72  (“PD”) is initiated from the QASM file  50 - 4  into the QIZ Z1 and allocated the qubit  18 - 5 . The QIZ controller  44  generates a mapping record  74  that maps the PID of the quantum process  72 , PD_PID, to the QIZ Z1. In this example, the quantum process  72  is also identified as a child process of the quantum process  60 . 
     The QIZ controller  44  modifies the QIZ availability status  34  of the metadata record  28 - 5  to indicate that the qubit  18 - 5  is no longer available for allocation. The QIZ controller  44  modifies the process identifier  36  of the metadata record  28 - 5  to indicate that the qubit  18 - 5  is allocated to the quantum process  72 . The QIZ controller  44  modifies the parent identifier  38  of the metadata record  28 - 5  to indicate that the quantum process  60  is a parent process of the quantum process  72 . The QIZ controller  44  modifies the child identifier  40  of the metadata records  28 - 1  and  28 - 2  to indicate that the quantum process  72  is a child process of the quantum process  60 . 
     The metadata records  28 - 1 ,  28 - 2 ,  28 - 4  and  28 - 5  establish a relationship graph that appears, logically, as that illustrated in the logical view of the QIZ Z1 in  FIG.  1 E , such that the quantum process  60  is the parent process of the child quantum processes  68  and  72 . As will be discussed herein, the relationship graph established in the metadata records  28 - 1 ,  28 - 2 ,  28 - 4 , and  28 - 5  impacts the visibility of qubits  18  by the quantum processes  60 ,  68 , and  72 . 
     To illustrate the impact of the relationship graph in the QIZ Z1, assume that the quantum process  60  issues a request to the OS qubit interface  56  to obtain a list of qubit IDs of all qubits  18  to which the quantum process  60  has access (i.e., read access and/or write access) or which are available for allocation. The OS qubit interface  56  communicates with the QIZ controller  44 . The QIZ controller  44  determines the PID of the requestor, in this case the PID PA_PID, which is the PID of the quantum process  60 . The QIZ controller  44  accesses the mapping record  62  and determines that the quantum process  60  is associated with the QIZ Z1. The QIZ controller  44  accesses the metadata records  28  and determines that the qubits  18 - 1 - 18 - 6  have been allocated to the QIZ Z1, and that the qubit  18 - 6  is available. The QIZ controller  44  also determines that the qubits  18 - 1  and  18 - 2  have been allocated to the quantum process  60 . The QIZ controller  44  determines that the quantum process  60  has two child processes executing in the QIZ Z1, the quantum processes  68  and  72 . Because the quantum processes  68  and  72  are child processes of the quantum process  60 , the quantum process  60  has access to the qubits  18 - 4  and  18 - 5  allocated to the quantum processes  68  and  72 , respectively. The QIZ controller  44  returns the qubit IDs of the qubits  18 - 1 ,  18 - 2 , and  18 - 4 - 18 - 6 , indicating that the quantum process  60  has access to the qubits  18 - 1 ,  18 - 2 ,  18 - 4 , and  18 - 5 , and that the qubit  18 - 6  is available for allocation. 
     Assume next that the quantum process  68  issues a request to the OS qubit interface  56  to obtain a list of qubit IDs of all qubits  18  to which the quantum process  68  has access (i.e., read access and/or write access) or which are available for allocation. The OS qubit interface  56  communicates with the QIZ controller  44 . The QIZ controller  44  determines the PID of the requestor, in this case the PID PC_PID, which is the PID of the quantum process  68 . The QIZ controller  44  accesses the mapping record  70  and determines that the quantum process  68  is associated with the QIZ Z1. The QIZ controller  44  accesses the metadata records  28  and determines that the qubits  18 - 1 - 18 - 6  have been allocated to the QIZ Z1, and that the qubit  18 - 6  is available. The QIZ controller  44  also determines that the qubit  18 - 4  has been allocated to the quantum process  68 . The QIZ controller  44  determines that the quantum process  68  has no child processes executing in the QIZ Z1, and that the quantum process  60  is a parent process of the quantum process  68 . Because the quantum process  60  is a parent process of the quantum process  68 , the quantum process  68  has access to the qubits  18 - 1  and  18 - 2  allocated to the quantum process  60 . However, because the quantum process  72  is neither a parent process nor a child process of the quantum process  68 , the quantum process  68  has no visibility to the qubit  18 - 5  allocated to the quantum process  72 . The QIZ controller  44  returns the qubit IDs of the qubits  18 - 1 ,  18 - 2 ,  18 - 4  and  18 - 6 , indicating that the quantum process  68  has access to the qubits  18 - 1 ,  18 - 2 , and  18 - 4 , and that the qubit  18 - 6  is available for allocation. 
     The QIZ controller  44  receives a request, from a requestor, to allocate a second group of qubits  18  from available qubits  18  to establish a second QIZ that limits visibility of any quantum process associated with the second QIZ to only the qubits  18  in the second group of qubits  18 . In this example, the request indicates that five qubits  18  are to be allocated to the second QIZ. The QIZ controller  44  accesses the qubit metadata  26  and identifies five qubits  18  that have a system availability status  30  that indicates the qubits  18  are available. In this example, the QIZ controller  44  determines that the five qubits  18 - 7 - 18 - 11  are available based on the system availability status  30  of the metadata rows  28 - 7 - 28 - 11 . Referring now to  FIG.  1 F , the QIZ controller  44  modifies the system availability status  30  of the metadata records  28 - 7 - 28 - 11  to indicate that the five qubits  18 - 7 - 18 - 11  are no longer available for allocation. The QIZ controller  44  obtains a unique QIZ identifier, in this example, “Z2”, and modifies the QIZ ID  32  of the metadata records  28 - 7 - 28 - 11  to indicate that the qubits  18 - 7 - 18 - 11  have been allocated to the QIZ Z2. The QIZ controller  44  modifies the QIZ availability status  34  of the metadata records  28 - 7 - 28 - 11  to indicate that the qubits  18 - 7 - 18 - 11  are available for allocation within the QIZ Z2. The QIZ controller  44  modifies the total available qubits counter  24  to indicate that one qubit  18  (i.e., qubit  18 - 12 ) is now available for allocation to a QIZ. 
     Assume further that the task manager  46  receives a request to initiate a quantum process based on the QASM file  50 - 5  into the QIZ Z2. The task manager  46  may access the QASM file  50 - 5  and parse the QASM file  50 - 5  to determine that, during execution, the quantum process initiated from the QASM file  50 - 5  will utilize one qubit  18 . The task manager  46  sends a request to the QIZ controller  44  for an allocation of one qubit  18  from the QIZ Z2. The QIZ controller  44  receives the request to allocate one qubit in the QIZ Z2 to a quantum process that is, or will be, associated with the QIZ Z2. Based on the metadata records  28 , the QIZ controller  44  determines that the qubit  18 - 7  is available for allocation within the QIZ Z2 and modifies the QIZ availability status  34  of the metadata row  28 - 7  to indicate that the corresponding qubit  18 - 7  has been allocated and thus is no longer available for allocation (e.g., “NA”). 
     The QIZ controller  44  provides the qubit ID of the qubit  18 - 7  to the task manager  46 . The task manager  46  initiates a quantum process  76  (“PE”) into the QIZ Z2 with location information of the qubit  18 - 7 . The task manager  46  provides a unique program ID (PID) (“PE_PID”) of the quantum process  76  to the QIZ controller  44 . The QIZ controller  44  generates a mapping record  78  that maps the PID to the QIZ Z2. The quantum process  60  is now said to “execute in” or be “associated with” the QIZ Z2. 
     Assume that, at the point in time illustrated in  FIG.  1 F , the quantum process  76  issues a request to the OS qubit interface  56  to obtain a list of qubit IDs of all qubits  18  to which the quantum process  76  has access (i.e., read access and/or write access) or which are available for allocation. The OS qubit interface  56  communicates with the QIZ controller  44 . The QIZ controller  44  determines the PID of the requestor, in this case the PID PE_PID, which is the PID of the quantum process  76 . The QIZ controller  44  accesses the mapping record  78  and determines that the quantum process  76  is associated with the QIZ Z2. The QIZ controller  44  accesses the metadata records  28  and determines that the qubits  18 - 7 - 18 - 11  have been allocated to the QIZ Z2, and that the qubits  18 - 8 - 18 - 11  are available. Because the qubit  18 - 7  has already been allocated to the quantum process  76  and the four qubits  18 - 8 - 18 - 11  are available, the QIZ controller  44  returns the qubit IDs of the qubits  18 - 7 - 18 - 11  to the quantum process  76  via the OS qubit interface  56 , indicating that the quantum process  76  has access to the qubit  18 - 7 , and that the qubits  18 - 8 - 18 - 11  are available for allocation. Thus, from the perspective of the quantum process  76 , the quantum computing device  12  contains four available qubits  18 , and the quantum process  76  is unaware of and unable to access (e.g., is isolated from) the qubits  18 - 1 - 18 - 6  and  18 - 12 . 
     It is noted that because the QIZ controller  44  is a component of the quantum computing system  12 , functionality implemented by the QIZ controller  44  may be attributed to the quantum computing system  12  generally. Moreover, in examples where the QIZ controller  44  comprises software instructions that program the processor device  14  to carry out functionality discussed herein, functionality implemented by the QIZ controller  44  may be attributed herein to the processor device  14 . 
       FIG.  2    is a flowchart of a method for implementing QIZs according to one implementation.  FIG.  2    will be discussed in conjunction with  FIGS.  1 A- 1 F . The QIZ controller  44  receives, from a requestor, a request to allocate a group of the qubits  18  from the plurality of available qubits  18  that are implemented by the quantum computing system  12  and establish the QIZ Z1 that limits qubit visibility of any quantum process associated with the QIZ Z1 to only the qubits  18  in the group of qubits  18  ( FIG.  2   , block  1000 ). The QIZ controller  44  selects the first group of qubits  18 - 1 - 18 - 6  from the plurality of available qubits  18 - 1 - 18 - 12  ( FIG.  2   , block  1002 ). The QIZ controller  44  obtains the QIZ identifier (QIZID) Z1 that uniquely identifies the QIZ Z1 ( FIG.  2   , block  1004 ). The QIZ controller  44  modifies the qubit metadata  28 - 1 - 28 - 6  of the group of qubits  18 - 1 - 18 - 6  to indicate that each qubit  18  in the group of qubits  18 - 1 - 18 - 6  is associated with the QIZ Z1 ( FIG.  2   , block  1006 ). 
       FIG.  3    is a simplified block diagram of the environment  10  illustrated in  FIG.  1    according to one implementation. The environment  10  includes the quantum computing system  12  that includes the memory  16  and the processor device  14  coupled to the memory  16 . The processor device  14  is to receive, by the QIZ controller  44  from a requestor, a request to allocate the group of qubits  18  from the plurality of available qubits  18 - 1 - 18 - 12  that are implemented by the quantum computing system  12  and establish the QIZ Z1 that limits qubit visibility of any quantum process associated with the QIZ Z1 to only the qubits  18  in the group of qubits  18 . The QIZ controller  44  selects the group of qubits  18 - 1 - 18 - 6  from the plurality of available qubits  18 - 1 - 18 - 12 . The QIZ controller  44  obtains a unique QIZ identifier that uniquely identifies the QIZ Z1. The QIZ controller  44  modifies the qubit metadata  28 - 1 - 28 - 6  of the group of qubits  18 - 1 - 18 - 6  to indicate that each qubit  18  in the group of qubits  18 - 1 - 18 - 6  is associated with the QIZ Z1. 
       FIG.  4    is a block diagram of the quantum computing system  12  suitable for implementing examples according to one example. The quantum computing system  12  may comprise any computing or electronic device capable of including firmware, hardware, and/or executing software instructions to implement the functionality described herein. The quantum computing system  12  includes the processor device  14 , the system memory  16 , and a system bus  80 . The system bus  80  provides an interface for system components including, but not limited to, the system memory  16  and the processor device  14 . The processor device  14  can be any commercially available or proprietary processor device. 
     The system bus  80  may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. The system memory  16  may include non-volatile memory  82  (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory  84  (e.g., random-access memory (RAM)). A basic input/output system (BIOS)  86  may be stored in the non-volatile memory  82  and can include the basic routines that help to transfer information between elements within the quantum computing system  12 . The volatile memory  84  may also include a high-speed RAM, such as static RAM, for caching data. 
     The quantum computing system  12  may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device  48 , which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device  48  and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like. 
     A number of modules can be stored in the storage device  48  and in the volatile memory  84 , including an operating system and one or more program modules, such as the QIZ controller  44 , which may implement the functionality described herein in whole or in part. All or a portion of the examples may be implemented as a computer program product  88  stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device  48 , which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device  14  to carry out the steps described herein. Thus, the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on the processor device  14 . The processor device  14 , in conjunction with the QIZ controller  44  in the volatile memory  84 , may serve as a controller, or control system, for the quantum computing system  12  that is to implement the functionality described herein. 
     The operator  54  may also be able to enter one or more configuration commands through a keyboard (not illustrated), a pointing device such as a mouse (not illustrated), or a touch-sensitive surface such as a display device. Such input devices may be connected to the processor device  14  through an input device interface  90  that is coupled to the system bus  80  but can be connected by other interfaces such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The quantum computing system  12  may also include a communications interface  92  suitable for communicating with a network as appropriate or desired. 
     Individuals will recognize improvements and modifications to the preferred examples of the disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.