Маров Александр. Технология ПОС. Подсчет числа буквенных символов в строке. Вариант 22.#130
Open
Marofal wants to merge 29 commits intolearning-process:masterfrom
Open
Маров Александр. Технология ПОС. Подсчет числа буквенных символов в строке. Вариант 22.#130Marofal wants to merge 29 commits intolearning-process:masterfrom
Marofal wants to merge 29 commits intolearning-process:masterfrom
Conversation
a64a551 to
fcd7f77
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Подсчет числа буквенных символов в строке
Студент: Маров Александр Евгеньевич
Группа: 3823Б1ПР4
Технология: SEQ, MPI
Вариант: 22
Описание
В рамках работы реализованы последовательная и параллельная версии алгоритма подсчета количества буквенных символов в строке.
Последовательная версия (SEQ) выполняет проход по всем символам строки, проверяет каждый символ с помощью функции isalpha() и увеличивает счетчик при обнаружении буквенного символа. Она служит эталоном для проверки корректности параллельной реализации.
Параллельная версия (MPI) реализует блочное распределение данных между процессами. Исходная строка разделяется на фрагменты, каждый процесс подсчитывает количество букв в своем фрагменте. Затем результаты суммируются с помощью операции MPI_Allreduce, так что каждый процесс получает итоговое значение.
Ключевые особенности
Реализованы SEQ и MPI версии алгоритма
Распределение строки между процессами с помощью MPI_Scatter
Сбор и суммирование локальных результатов с помощью MPI_Allreduce
Поддержка работы со строками произвольной длины
Корректная обработка неравномерного распределения при делении строки
Проверка корректности путем сравнения результатов SEQ и MPI версий
Тестирование и производительность
Добавлены функциональные тесты для проверки корректности на различных входных строках (пустая строка, строка без букв, строка только с буквами, смешанная строка). Также добавлены тесты производительности, которые измеряют время выполнения алгоритма в двух режимах:
task_run: замер времени только основного вычислительного этапа
task_pipeline: замер полного времени решения задачи, включая распределение данных и сбор результатов