Dynamic Load Balancing Using Hilbert Space-Filling Curves for Parallel Reservoir Simulations
Why this work is in the frame
A frame that forgets how it found something cannot be audited. These are the routes that admitted this work.
Bibliographic record
Abstract
Abstract New reservoir simulators designed for parallel computers enable us to overcome performance limitations of workstations and personal computers and to simulate large-scale reservoir models with billions of grid cells. With development of parallel reservoir simulators, more complex physics and detailed models can be studied. The key to design efficient parallel reservoir simulators is not to improve the performance of individual CPUs drastically but to utilize the aggregation of computing power of all requested nodes through high speed networks. An ideal scenario is that when the number of MPI processors is doubled, the running time of parallel reservoir simulators is reduced by half. In real simulation, numerical difficulties and performance problems appear when the number of MPI processors grows due to the deteriorating linear solver efficiency and increasing communication overhead, which are determined by a grid distribution. The goal of load balancing (grid partitioning) is to minimize overall computations and to make sure that all MPI processors have a similar workload. Geometric methods divide a grid by using a location of cells while topological methods work with connectivity of cells, which is generally described as a graph. The geometric methods are much faster than the topological methods. This paper introduces a Hilbert space-filling curve method. A space-filling curve is a continuous curve and defines a map between a onedimensional space and a multi-dimensional space. A Hilbert space-filling curve is one special space-filling curve discovered by Hilbert and has many useful characteristics, such as good locality, which means that two objects that are close to each other in a multi-dimensional space are also close to each other in a one dimensional space. This property can model communications in grid-based parallel applications. The idea of the Hilbert space-filling curve method is to map a computational domain into a one-dimensional space, partition the one-dimensional space to certain intervals, and assign all cells in a same interval to a MPI processor. To implement a dynamic load balancing method, we need a mapping kernel that converts high-dimensional coordinates to a scalar value, and an efficient one-dimensional partitioning module that divides a one-dimensional space and makes sure that all intervals have a similar workload. The Hilbert space-filling curve method is compared with other load balancing methods, such as the K-way method from ParMETIS and other geometric methods from Zoltan. The results show that our Hilbert space-filling curve is much faster than graph methods. It also has good partition quality. This method has been applied to reservoir models with billions of grid cells and linear scalability has been obtained on many parallel computing systems.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
Full frame distilled prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. Learned from the 10,348 direct Codex labels and 10,348 direct Gemma labels. Candidate is the union of thresholded teacher heads; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels or direct frontier model labels.
Codex and Gemma teacher scores by category
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.001 | 0.002 |
| Meta-epidemiology (narrow) | 0.000 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.000 |
| Bibliometrics | 0.000 | 0.000 |
| Science and technology studies | 0.002 | 0.000 |
| Scholarly communication | 0.001 | 0.002 |
| Open science | 0.002 | 0.001 |
| Research integrity | 0.000 | 0.000 |
| Insufficient payload (model declined to judge) | 0.000 | 0.000 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from it