Commit 2f3b49e
authored
Сизов Дмитрий. Технология SEQ-MPI. Алгоритм глобального поиска (Стронгина) для одномерных задач оптимизации. Распараллеливание по характеристикам. Вариант 11. (#149)
## Description
- **Task**: Алгоритм глобального поиска (Стронгина) для одномерных задач
оптимизации. Распараллеливание по характеристикам / Global Search
Algorithm (Strongin) for One-Dimensional Optimization Problems.
Parallelization by Characteristics.
- **Variant**: 11
- **Technology**: SEQ+MPI
- **Description:**
- The solution is based on **Strongin’s global search algorithm**, a
deterministic
method for one-dimensional global optimization. The algorithm
iteratively refines
a closed interval by evaluating the objective function at selected
points and
choosing the most promising interval according to the Strongin
characteristic.
- In the sequential version, the algorithm maintains an ordered set of
sampled
points, computes an adaptive Lipschitz-like estimate, and selects the
interval
with the maximum characteristic for further refinement. The process
continues
until the required accuracy is reached or the iteration limit is
exceeded.
- The parallel MPI version applies **parallelization by interval
characteristics**.
At each iteration, the set of intervals is distributed among MPI
processes, which
compute characteristics locally. The globally best interval is selected
using
`MPI_Allreduce`, after which a new sampling point is generated and
broadcast to
all processes. This approach preserves the deterministic behavior of the
algorithm while reducing execution time for computationally intensive
cases.
---
## Checklist
- [x] **CI Status**: All CI jobs (build, tests, report generation) are
passing on my branch in my fork
- [x] **Task Directory & Naming**: I have created a directory named
`<lastName>_<firstInitial>_<short_task_name>`
- [x] **Full Task Definition**: I have provided the complete task
description in the pull request body.
- [x] **clang-format**: My changes pass `clang-format` locally in my
fork (no formatting errors)
- [x] **clang-tidy**: My changes pass `clang-tidy` locally in my fork
(no warnings/errors)
- [x] **Functional Tests**: All functional tests are passing locally on
my machine
- [x] **Performance Tests**: All performance tests are passing locally
on my machine
- [x] **Branch**: I am working on a branch named exactly as my task
directory (e.g., `nesterov_a_vector_sum`), not on `master`.
- [x] **Truthful Content**: I confirm that every detail provided in this
pull request is accurate and truthful to the best of my knowledge.1 parent 3a63dfa commit 2f3b49e
11 files changed
Lines changed: 2187 additions & 0 deletions
File tree
- tasks/sizov_d_global_search
- common/include
- data
- mpi
- include
- src
- seq
- include
- src
- tests
- functional
- performance
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
0 commit comments