Skip to content

Маров Александр. Технология ПОС. Подсчет числа буквенных символов в строке. Вариант 22.#130

Open
Marofal wants to merge 29 commits intolearning-process:masterfrom
Marofal:marov-task1-count-letters
Open

Маров Александр. Технология ПОС. Подсчет числа буквенных символов в строке. Вариант 22.#130
Marofal wants to merge 29 commits intolearning-process:masterfrom
Marofal:marov-task1-count-letters

Conversation

@Marofal
Copy link
Copy Markdown

@Marofal Marofal commented Mar 1, 2026

Подсчет числа буквенных символов в строке
Студент: Маров Александр Евгеньевич
Группа: 3823Б1ПР4
Технология: SEQ, MPI
Вариант: 22

Описание
В рамках работы реализованы последовательная и параллельная версии алгоритма подсчета количества буквенных символов в строке.

Последовательная версия (SEQ) выполняет проход по всем символам строки, проверяет каждый символ с помощью функции isalpha() и увеличивает счетчик при обнаружении буквенного символа. Она служит эталоном для проверки корректности параллельной реализации.

Параллельная версия (MPI) реализует блочное распределение данных между процессами. Исходная строка разделяется на фрагменты, каждый процесс подсчитывает количество букв в своем фрагменте. Затем результаты суммируются с помощью операции MPI_Allreduce, так что каждый процесс получает итоговое значение.

Ключевые особенности
Реализованы SEQ и MPI версии алгоритма

Распределение строки между процессами с помощью MPI_Scatter

Сбор и суммирование локальных результатов с помощью MPI_Allreduce

Поддержка работы со строками произвольной длины

Корректная обработка неравномерного распределения при делении строки

Проверка корректности путем сравнения результатов SEQ и MPI версий

Тестирование и производительность
Добавлены функциональные тесты для проверки корректности на различных входных строках (пустая строка, строка без букв, строка только с буквами, смешанная строка). Также добавлены тесты производительности, которые измеряют время выполнения алгоритма в двух режимах:

task_run: замер времени только основного вычислительного этапа

task_pipeline: замер полного времени решения задачи, включая распределение данных и сбор результатов

@Marofal Marofal requested a review from allnes as a code owner March 1, 2026 21:52
@Marofal Marofal force-pushed the marov-task1-count-letters branch from a64a551 to fcd7f77 Compare March 2, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant