![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
*оля* |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
здравствуйте.
Нужно сделать задание, но сколько ни читаю, никак не приходит понимае что же все-таки и как нужно сделать. само задание : Поиск слова, в нескольких текстовых файлах; 1)Выполнить задание последовательным алгоритмом; 2)Выполнить задание параллельным алгоритмом (обязательно использовать для разграничения общих ресурсов системные объекты синхронизации); 3)Сделать анализ быстродействия последовательного и параллельного алгоритмов. буду очень благодарна, если кто-нибудь объяснит как делать. |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Используешь, скажем, pthread... Пишешь функцию потока, которая открывает один файл, и шерстит его в поисках заданного слова. Потом создаешь несколько таких потоков, каждому из которых передаешь свое имя файла, и пускай каждый поток занимается своей работой. Это будет параллельное выполнение. А потом, для теста, делаешь обработку всех файлов одной и той же функцией, в цикле. И сравниваешь скорости.
Только вот тогда непонятно, о каких объектах синхронизации речь. Если каждый файл обрабатывается своим потоком, и никакие другие потоки в этот процесс (и в этот же файл) не лезут - то никаких проблем быть не может, и не нужны тут никакие синхронизации в принципе. Непонятно. Может, у тебя задан какой-то конкретный алгоритм поиска, который внутри одного файла тоже можно распараллелить (разбросать на несколько потоков)? |
*оля* |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
Используешь, скажем, pthread... Пишешь функцию потока, которая открывает один файл, и шерстит его в поисках заданного слова. Потом создаешь несколько таких потоков, каждому из которых передаешь свое имя файла, и пускай каждый поток занимается своей работой. Это будет параллельное выполнение. А потом, для теста, делаешь обработку всех файлов одной и той же функцией, в цикле. И сравниваешь скорости. Только вот тогда непонятно, о каких объектах синхронизации речь. Если каждый файл обрабатывается своим потоком, и никакие другие потоки в этот процесс (и в этот же файл) не лезут - то никаких проблем быть не может, и не нужны тут никакие синхронизации в принципе. Непонятно. Может, у тебя задан какой-то конкретный алгоритм поиска, который внутри одного файла тоже можно распараллелить (разбросать на несколько потоков)? неа, конкретный алгоритм поиска не задан. ну, если посмотреть пример :
то нужно части, где выводятся а и в поменять на алгоритм поиска слова в 1 и 2 файле? а можно немного прокомментировать где что делается? |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 21:35 |