Abstract
SPE Members
Abstract
Parallel computers hold much promise for scientific computation. So a great deal of effort has been devoted to finding ways to parallelize linear equation solvers.
However in fully implicit reservoir simulators the real problem is the solution of non-linear equations. This paper problem is the solution of non-linear equations. This paper shows how a judicious combination of linear and non-linear solution techniques can lead to the fastest overall simulator. It uses a combination of an approximate iterative solution of the Jacobian and a Quasi-Newton method.
The proposed method makes it possible to use the highly parallelizable Jacobi matrix solution techniques, which are parallelizable Jacobi matrix solution techniques, which are poorly convergent, and still get good serial performance. poorly convergent, and still get good serial performance. Experiments on a parallel computer show that even with a highly parallel method, problem sizes need to be quite large to get good efficiency.
The proposed method can also be used to speed up serial programs by simply using a good serial technique to iteratively programs by simply using a good serial technique to iteratively solve the linear equations.
Introduction.
There is great current interest in parallel computing in all scientific fields. It is easy to see why. The fastest supercomputers today use cycle times of a few nanoseconds. Considering that light itself can only travel 11.78 inches in one nanosecond (electricity travels even less) supercomputers seem to be approaching the point of diminishing returns.
Parallel computers capable of similar absolute performance can be made at a much lower total cost. It is likely that parallel computers will eventually greatly exceed the performance of conventional supercomputers, so they represent an important new factor for reservoir simulation.
The form of parallel computers has not yet been standardized. Different approaches to solve the hardware issues have resulted in different types of parallel computers, e.g. messagepassing, shared-memory, data-flow, systolic arrays and connectionist machines. Of these the first two types seem to be the most promising for general purpose use.
Writing parallel software has proved to be a problem though. It is relatively simple to make good use of 3–4 processors working in parallel (in some cases this can be done processors working in parallel (in some cases this can be done automatically on existing serial code by the compiler and/or the hardware). But it is difficult to make effective use of say 100 processors working in parallel. It is this latter type of machine processors working in parallel. It is this latter type of machine that holds the most promise and our interest is in programs for these machines.
Usually one is forced to use an algorithm that is less than optimal for a serial computer in order to make best use of the parallel computer. Furthermore, one cannot rely on the parallel computer. Furthermore, one cannot rely on the compiler/hardware to automatically detect and take advantage of concurrency, rather the code will have to be explicitly written to run in parallel.
The remainder of the paper discusses some of the issues involved in writing such a reservoir simulator. We begin by showing why it is so difficult to get good speedup on parallel machines. We then describe Quasi-Newton methods and indicate how they apply to this problem. Next we describe some of the details of parallel machines and programs for them, followed by results of our parallel simulator. Finally we compare our proposed method with existing methods.
Amdahl's law and matrix solution.
It is widely known that the matrix solution step in a simulator is the most difficult part to parallelize. Since matrix problems are common to virtually all scientific fields, much problems are common to virtually all scientific fields, much research is currently being devoted to parallelizing the problem.
Amdahl's law shows why this is so difficult to parallelize. It basically states that the time for a given computation T, is the sum of two components: a serial component S that must be performed in serial, and a parallel component P that can be performed in parallel. performed in parallel. P. 7
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献