Patent Publication Number: US-8532967-B2

Title: Executing a utility in a distributed computing system based on an integrated model

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application Ser. No. 61/234,256, filed Aug. 14, 2009, which is hereby incorporated by reference. 
    
    
     BACKGROUND 
     To recover fluids such as hydrocarbons from a subterranean formation, one or more wells are drilled into the subterranean formation, and various equipment and facilities are provided at the earth surface to enable the recovery of fluids from the subterranean formation and distribution to target locations. To enhance efficiency and to optimize operations associated with development of subterranean formations, modeling is often performed. Modeling involves creating models of various aspects associated with a subterranean formation development. For example, a reservoir model can be used to model properties of the subterranean formation, including any reservoirs in the subterranean formation, such that fluid flow in the subterranean formation can be simulated. Other types of models include a model of a surface network of pipelines and other equipment, a model of facilities used to store and/or deliver subterranean fluids, and/or other models. Based on such models, simulations can be performed using simulators. 
     In some cases, performing complex engineering studies involves running numerous simulations. Conventionally, these simulations are run sequentially leading to excessive runtimes. More recently, technology has emerged to allow concurrent simulations—however, such technology has tended to be very task specific. A more flexible and convenient approach is currently not available in the oil and gas domain. 
     SUMMARY 
     In general, according to an embodiment, an integrated model based on plural models relating to corresponding aspects of a subterranean formation development is provided. A utility is set up to perform a function using the integrated model. The utility is assigned to execute in a distributed computing system having a plurality of computer nodes. Computations performed by the utility are distributed across the plurality of computer nodes, where the computations are related to simulation using the integrated model. 
     Other or alternative features will become apparent from the following description, from the drawings, and from the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an exemplary arrangement that includes a subterranean formation having a reservoir from which fluids can be extracted, where the arrangement of  FIG. 1  can be modeled according to an embodiment; 
         FIG. 2  is a schematic diagram of a distributed computing workflow, according to an embodiment; 
         FIG. 3  is a schematic diagram of an arrangement including a master computer node and multiple remote computer nodes to perform distributed computing according to an embodiment; 
         FIG. 4  is a block diagram illustrating integrated asset modeling according to an embodiment; 
         FIG. 5  is a block diagram of a master computer node according to an embodiment; 
         FIG. 6  is a flow diagram of a process of performing distributed computations associated with a utility according to an embodiment; and 
         FIG. 7  is a schematic diagram of an example of providing a variable sensitivity analysis in a distributed computing framework according to an embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, numerous details are set forth to provide an understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these details and that numerous variations or modifications from the described embodiments are possible. 
       FIG. 1  illustrates an exemplary arrangement that includes a subterranean formation  100  that has a reservoir  102  that contains fluids (e.g., hydrocarbons, gas, freshwater, etc.). As shown in  FIG. 1 , one or more wellbores  104  are drilled into the subterranean formation  100  to intersect the reservoir  102 . Completion equipment can be installed in each of the wellbores  104  to allow for recovery of fluids from the reservoir  102  into the wellbores  104 . 
     During operation, fluids from the reservoir  102  are extracted through the wellbores  104  to a surface network  106  that has various wellhead equipment as well as other components, including pipelines and so forth. Moreover, various facilities  108  are also provided, where the facilities  108  are used to store extracted facilities, or to distribute the extracted fluids to remote locations. 
     Instead of extracting fluids from the reservoir  102 , an alternative implementation can cause fluids to be injected into a reservoir  102 , such as to perform carbon dioxide sequestration, or sequestration of other types of fluids. 
     The process and mechanism associated with producing and/or injecting fluids into a subterranean formation is referred to as subterranean formation development. Various aspects of the subterranean formation development can be modeled using respective models. For example, a reservoir model can be used to model the subterranean formation  100 , including the reservoir  102 , for predicting fluid flows in various parts of the subterranean formation  100 . A surface network model can also be used to model the surface network  106  of pipelines and other equipment, and a facility model can be used to model the facilities  108 , which can include storage equipment to store extracted subterranean fluids as well as further pipelines to deliver the subterranean fluids to remote locations. Other models associated with subterranean formation development can also provided, including an economic model that is used to model the economic aspects of subterranean formation development (e.g., model involving costs, revenues, and other economic indicators of the subterranean formation development). 
     In accordance with some embodiments, the models of the various aspects of a subterranean formation development can be integrated to form an integrated asset model. An integrated asset model is useful for analyzing any interactions between the different aspects of the subterranean formation development, such as interactions between fluid flow in the subterranean formation  100  and fluid flow at the surface network  106  or at the facilities  108 . It is noted that the facilities  108  can be shared by several different fields, which may have different properties. The integrated asset model can model interactions between a facility model and multiple sets of reservoir and surface network models (which correspond to the multiple fields). 
     Note that different integrated asset models can be developed, with each integrated asset model having different combinations of underlying models. 
     Various simulation workflow utilities can also be set up to perform corresponding functions using the integrated asset models. Examples of simulation workflow utilities include a utility for performing optimization (e.g., find an optimum wellhead choke setting to maximize production of oil from a network while imposing a constraint on wellhead oil production), a utility to perform multi-variable sensitivity analysis (to detect how sensitive one variable is with respect to variations in one or more other variables), a utility to perform neural network training (to train a neural network as a proxy to a surface network model, for example), and/or other utilities. 
     The simulation workflow utilities can be abstracted from (is separate from) core software used to implement a system according to some embodiments. The architecture of the core software is such that adding a new utility may be easily incorporated without the need for any core software modifications. In some embodiments, the utilities can be introduced into a system for use with the core software in a “plug and play” manner. Consequently, any future extensions of the system providing the integrated asset modeling according to some embodiments can be implemented easily by adding new utilities that can be plugged into the system in a transparent manner. In this manner, utilities from different vendors can be used. Also, extensibility is provided. 
     Execution of such utilities involves computations related to performing multiple simulations based on corresponding integrated asset models. In many cases, performing a simulation using an integrated asset model is computationally intensive. In accordance with some embodiments, such computations can be assigned to multiple computer nodes in a distributed computing system, such that the computations can be performed in parallel for improved performance. 
       FIG. 2  is a schematic diagram illustrating a distributed computing workflow according to an embodiment.  FIG. 2  shows an integrated asset model  200  that is built based on various underlying models  202 ,  204 ,  206 , and  208  that are coupled to each other. The models  202 ,  204 ,  206 , and  208  represent different aspects of a subterranean formation development as discussed above. In addition, various utilities  210  that can use the integrated asset model  200  are shown in  FIG. 2 , including a variable sensitivity utility  212 , an optimization utility  214 , a neural network utility  216 , and other utilities. 
     Each of the utilities  212 ,  214 , and  216  can be assigned to multiple distributed computing runs that are executed on corresponding computer nodes of a distributed computing system. For example, the neural network utility  216  can be assigned to n computer nodes to perform n respective runs (run  1 , run  2 , run  3 , run n shown in  FIG. 2 ). 
     As shown in  FIG. 3 , a distributed computing framework according to an embodiment includes a master computer node  300  and a number of remote or slave computer nodes  302 . In the example of  FIG. 3 , n remote computer nodes ( 1 ,  2 , . . . , n) are shown. Each remote computer node is associated with a remote service host (remote service host  1 , remote service host  2 , . . . , remote service host n). Each remote service host is a software service on the corresponding remote computer node. Generally, the remote service host interacts with a master simulation component  310  in the master computer node  300  to enable distribution of the load associated with integrated asset modeling across multiple remote computer nodes. 
     Based on assignment of the distributed computing runs  218  shown in  FIG. 2 , multiple integrated asset model slave simulations  304 ,  306 , and  308  are performed in the respective remote computer nodes  1 ,  2 , and n. 
     In the master computer node  300 , the master simulation component  310  sends (at  312 ) commands relating to execution of the slave simulations to the remote computer nodes. Upon completion of the corresponding slave simulations  304 ,  306  and  308 , results are returned (at  314 ) from the remote computer nodes back to the master simulation component  310 . 
       FIG. 4  shows an integrated asset modeling environment, which includes three core components: simulation model adapters ( 402 A,  402 M shown), a simulation framework  404 , and simulation utilities  210 . The components depicted in  FIG. 4  can be provided in the master computer node  300  of  FIG. 3 , for example. 
     Each of the simulation model adapters  402 A,  402 M is associated with a corresponding simulator A, B. Each simulator A, B is used for performing simulation using a corresponding model A, M, where the models A, M represent various aspects of a subterranean formation development. The simulation model adapters  402 A,  402 M are used to couple disparate simulators from various engineering domains into the integrated asset modeling environment. For example, one simulation model adapter can be used for a reservoir simulator, another simulation model adapter can be used for a surface network simulator, and so forth. Each simulation model adapter extracts input and output variables from the underlying simulation model and presents the input and output variables in a generic way to the integrated asset management environment. 
     Each simulation model adapter differentiates between input variables (also referred to as “specifiable variables”), which may be changed by a user, and output variables (also referred to as “calculated variables”), which are the result of calculations associated with simulations using the underlying models. One example of a calculated (output) variable is the oil rate at a delivery point in a surface network, and one example of a specifiable (input) variable is the compressor duty (amount of energy consumed by compressor) in a gas plant facility. Each simulation model adapter  402 A,  402 M also monitors the status of each specifiable variable (input variable). When a change in the specifiable variable is detected, the underlying model is solved and published results (results from simulation using the underlying model) are updated. 
     The simulation framework  404  provides a mechanism for manipulating data exposed from the simulation model adapters  402 A,  402 M. The simulation model adapters  402 A,  402 M expose (or publish) the variables (input and output variables) to the simulation framework  404 . Once the variables are available inside the simulation framework  404 , the variables become available for use with the integrated asset model  200  that is part of the simulation framework  404 . 
     The simulation framework  404 , and more specifically, the integrated asset model  200 , allows for the underlying models to be connected to each other. As an example, output variables from a surface network model (e.g., oil rate, gas rate, water rate, etc.) can be connected to the input of a gas plant facility model. When the two models are connected, any change in the connected variable in the upstream model (surface network model in this example) will result in the inputs to the downstream model being updated and solved. 
     The simulation framework  404  also enables reporting of variables in a predefined format (e.g., table or chart format). Also, the simulation framework  404  allows for publication of variables as key performance indicators and generation of time-based reports based on document templates. Additionally, the simulation framework  404  enables dynamic modifications of underlying simulations through the application of time-based asset management rules to modify specifiable variables. The simulation framework  404  also performs various engineering tasks through the application of the simulation utilities  210 . 
     The simulation utilities  210  are workflow tools that allow various engineering tasks to be performed in the integrated asset modeling environment. Specifiable and calculated variables are brought into the utilities from the simulation framework  404 . This creates a connection similar to the model connection of the integrated asset model  200 . 
     Each utility performs a series of calculations to achieve a specific objective. Generally, a set of input values is specified for the specifiable variables. The input values are sent to the respective model adapters via the simulation framework  404 . The simulation framework  404  and model adapters will propagate any changes to the values of the specifiable variables to the underlying simulation models (models A, M in  FIG. 4 ) and solve them as required. The calculated variables imported into the utility are automatically updated by the simulation framework  404 . 
     The above tasks are repeated until the objective of the utility has been achieved. Once the objective has been achieved, the results are made available to a user. 
     As noted above, examples of utilities include a neural network utility, an optimization utility, and a variable sensitivity utility. In one example, a neural network utility can train a neural network as a proxy to a surface network model. For example, wellhead chokes can be varied, and individual well and total network production rates resulting from the variation of the wellhead chokes are observed. By training the neural network as a proxy to the surface network model, the neural network can be used instead to produce outputs given inputs. The notion here is that the trained neural network would perform computations in a more timely and efficient manner than a simulation based on the surface network model. 
     Operation of the neural network utility involves three general steps. In a first step, a specifiable variable (e.g., wellhead choke diameter) is imported to the neural network utility. Also, calculated variables (e.g., flow-rates) are imported for all wells and a delivery manifold. 
     In a second step, a range of values (minimum value and maximum value) is specified for the specifiable variable (e.g., choke diameter). Moreover, the number of training points is specified, and the sets of input data for training the neural network are generated. The neural network training utility is then run. Each input set is sent to the underlying simulator of the surface network model, which is solved. The results are stored for later use. 
     Next, in a third step, the neural network is trained with the data generated in step  2 . 
     As another example, a variable sensitivity utility can be used to validate the neural network against the actual response from the real surface network model by varying the specifiable variable (e.g., choke diameter) for a single well over a specified range for both the neural network and for the physical surface network model. 
     In a first step, the specifiable variable (e.g., choke diameter) is imported from the neural network model and the surface network model for a target well. Also, calculated variables (e.g., flow rates) are imported into the utility. 
     In a second step, the sensitivity range (minimum and maximum) for the specifiable variable is specified, and the number of sensitivity points is specified. The sensitivity analysis is then run. The variable sensitivity utility will then run the neural network and the surface network model over the sensitivity range to generate response curves. 
     In a third step, the utility response curves are then compared to assess the neural network performance against the surface network model. 
     As another example, an optimization utility can find the optimum wellhead choke settings to maximize production of oil from a surface network while imposing constraints on the wellhead oil production. 
     In a first step, specifiable control variables are imported into the optimization utility (such as the wellhead choke size). Also, the calculated variables required for the objective function (e.g., total oil production) and for the constraint (e.g., wellhead oil rates) are imported. 
     In a second step, the following are specified: the specifiable control variables range (choke size maximum and minimum), model constraints (wellhead rate maximums), and type of optimization. The optimization problem is then run. The optimization utility perturbs the underlying simulation model (e.g., surface network model), which is solved. The optimization algorithm then calculates a search direction based on the updated solution, and this is continued until the objective is minimized. 
     In a third step, the optimal choke settings calculated in the second step can be used in the field. 
     Generally, it is noted that any of the utilities discussed above performs multiple calculations based on the same simulation model using different sets of input data. If there are N calculations and M computer nodes, then the N calculations can be run on the M computer nodes, assuming M≧N. 
       FIG. 5  shows components of the master computer node  300 , according to an exemplary embodiment. The master computer node  300  includes a distributed computing management tool  502  that can be invoked by a user to load (or define) the integrated asset model (that is based on underlying models  202 ,  204 ,  206 ,  208 ). In the context of the  FIG. 3  arrangement, the distributed computing management tool  502  is the master simulation component  310  of  FIG. 3 . The distributed computing management tool  502  also allows the user to select the number of remote (slave) computer nodes of a distributed computing system for assigning slave simulation runs. 
     The distributed computing management tool  502  can be software executable on a processor  504 , which is connected to memory  508 , display device  510 , and network interface  514 . The distributed computing management tool  502  upon execution causes a graphical user interface (GUI) screen  512  to be displayed in the display device  510 . The GUI screen  512  allows a user to select various settings associated with the distributed computing framework using the integrated asset model  200  according to some embodiments. Also, the GUI screen  512  allows results of simulation utilities  210  to be presented to the user. 
     The network interface  514  enables communication between the master computer node  300  and a data network, which can be connected to remote computer nodes. Communications between the master computer node  300  and the remote computer nodes that are running slave simulations occur through the network interface  514  and the data network. 
     The integrated asset model  200 , underlying models  202 ,  204 ,  206 , and  208 , and simulation utilities  210  are stored in storage media  506 . The storage media  506  can be implemented with one or more disk-based storage devices and/or one or more integrated circuit storage devices. 
     As discussed above, the utilities can be abstracted from core software (in this case the distributed computing management tool  502 ). The utilities can be introduced into the system for use with the distributed computing management tool  502  in a “plug and play” manner, for flexibility and convenience. 
       FIG. 6  is a flow diagram of a process of running a workflow utility according to an embodiment. An integrated asset model is loaded (at  602 ). There can be a number of integrated asset models available, and a user can select one of the integrated asset models for loading. 
     Next, a simulation utility is created (at  604 ) to perform a target function using the loaded integrated asset model. The created simulation utility can be any one of the utilities discussed above or other utilities. 
     The distributed computing management tool  502  ( FIG. 5 ) is opened (at  606 ). Opening the distributed computing management tool  502  presents the GUI screen  512  ( FIG. 5 ) to allow the user to make various selections associated with running the workflow utility in a distributed computing system. 
     The computer nodes across which tasks of the simulation utility are to be distributed are selected (at  608 ) in response to user selections made in the GUI screen  512 . Also, the distributed computing management tool  502  receives (at  610 ) selection of other settings associated with the distribution of tasks of the simulation utility. For example, such other settings can include a setting to perform load balancing of the tasks of the simulation utility across the selected computer nodes. Load balancing refers to spreading work across the selected computer nodes such that optimal resource utilization, maximum throughput, and/or minimum response time can be achieved. The load balancing capabilities can be provided by the remote service hosts ( FIG. 3 ) running in corresponding remote computer nodes. 
     Alternatively, a user can specifically identify which slave computer nodes are to perform which specific tasks of the simulation utility. 
     Next, the distributed computing management tool  502  invokes (at  612 ) the simulation runs on the selected computer nodes. Results of such simulation runs are received by the distributed computing management tool  502  and displayed (at  614 ), such as in the GUI screen  512  ( FIG. 5 ). 
       FIG. 7  shows an example procedure for performing a sensitivity analysis using a simulation utility based on an integrated asset model according to an embodiment. First, an integrated asset model is provided (at  702 ), such as by loading of a predefined integrated asset model or by creating/defining the integrated asset model. Next, a variable sensitivity analysis utility is configured (at  704 ) to perform the sensitivity analysis. For example, in configuring the variable sensitivity analysis utility, a number of independent variables (e.g., choke diameters) can be defined along with their respective ranges and increments, against which solutions are to be computed. 
     The variable sensitivity analysis utility is then added (at  706 ) to the distributed computing management tool  502  ( FIG. 5 ). Note that the separation of the utilities (including the variable sensitive analysis utility) from the distributed computing management tool  502  (core software) allows for flexibility in using any current and/or future utilities with the distributed computing management tool  502 . The distributed computing management tool  502  can prompt the user to select the number of computer nodes in the distributed computing system across which tasks of the variable sensitivity analysis utility are to be performed. The distributed computing management tool  502  manages (at  708 ) the dynamic list of run tasks of the variable sensitivity analysis utility and distributes the tasks to the remote computer nodes for computation. As each individual simulation on a remote computer node completes and results are calculated (at  710 ), the results are returned back to the distributed computing management tool  502 . 
     At the distributed computing management tool  502 , a master set of results is compiled based on the results returned from the remote computer nodes. Once completed, the results are reported back to the user. 
     Using techniques or mechanisms according to some embodiments, a generalized framework is provided for application of distributed computing to workflows in the field of integrated asset modeling. This framework provides a transparent mechanism to distribute the load associated with simulation workflows, such that enhanced productivity and speed gains can be achieved. 
     Instructions of software described above (including the distributed computing management tool  502 , remote service hosts, and other software discussed above) are loaded for execution on a processor (such as processor  504  in  FIG. 5 ). The processor includes microprocessors, microcontrollers, processor modules or subsystems (including one or more microprocessors or microcontrollers), or other control or computing devices. A “processor” can refer to a single component or to plural components (e.g., one or multiple central processing units in one or multiple computer nodes). 
     Data and instructions (of the software) are stored in respective storage devices, which are implemented as one or more computer-readable or computer-usable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; and optical media such as compact disks (CDs) or digital video disks (DVDs). 
     While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art, having the benefit of this disclosure, will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the invention.