Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
1

Статистика вхождения слов в массиве файлов (~50Gb)

06.08.2010, 20:33. Показов 749. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача: собрать статистику вхождения слов в массиве файлов (~50Gb) с использованием библиотеки X (синтаксический анализатор). Библиотека X написана не идеально, но доступных её аналогов нет. Библиотека X может выкидывать segmentation fault в зависимости от обрабатываемого файла, т.е. её код не стабилен в 100% случаев.
Напрашивается решение: написать менеджер процессов, запускающий обработку каждого файла в отдельном процессе для изоляции от segmentation fault и складывающий результат в shared memory.
Главный процесс, он же менеджер рабочих процессов, по окончании обработки файлов сохраняет результаты на диск.

Вопрос: Есть ли какие-то готовые решения для данной задачи. Может быть библиотека или фреймворк?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.08.2010, 20:33
Ответы с готовыми решениями:

Вывести заданную последовательность слов, но удалив из неё повторные вхождения слов
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных...

Распечатать эту же последовательность слов, удалив из нее повторные вхождения слов
Проверка кода. Распечатать эту же последовательность слов, но удалив из нее повторные вхождения...

Вывести заданную последовательность слов, удалив из неё повторные вхождения слов
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных...

Напечатать эту же последовательность слов, но удалив из нее повторные вхождения слов
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 прописных...

4
nikkka
07.08.2010, 12:35
  #2

Не по теме:

нииииичего не понял...

0
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
07.08.2010, 16:37  [ТС] 3
Цитата Сообщение от nikkka Посмотреть сообщение

Не по теме:

нииииичего не понял...

Попробую иначе:
Существуют ли какие-то готовые решения на с++ (фреймворки, библиотеки) для параллельного запуска определяемой пользователем функции в виде изолированных процессов?
Т.е. программист определяет список задач, назначает функцию для обработки каждой задачи и далее это дело передает фреймворку, который каждую задачу обрабатывает с помощью заданной функции в изолированном процессе (proccess, не thread).
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
07.08.2010, 20:59 4
То есть ты думаешь если библиотека не упала в segfault, то она и считает правильно ?
Я бы не полагался на кривой код.
0
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
07.08.2010, 21:12  [ТС] 5
Цитата Сообщение от odip Посмотреть сообщение
То есть ты думаешь если библиотека не упала в segfault, то она и считает правильно ?
Я бы не полагался на кривой код.
А альтернатив нет. Синтаксический парсер русского языка на дороге не валяется. А разбираться в его кишках никакого желания и сил нет.

И библиотека как раз таки вылетает на segfault в зависимости от набора входных данных. Благо что бывает это довольно редко. На моем самопальном решении задачи из сабжа количество segfault ~2%, что лично меня устраивает.
Но т.к. segfalut возникает внезапно, то хочется как-то застраховаться - чтобы приложение не валилось все целиком из-за одного файла а продолжало обработку. Оставил комп на несколько суток работать - и ушел, не думаю о том что там где-то сегфолт вылетит на одном файле. Для сбора статистики этого подхода более чем достаточно

Добавлено через 7 минут
Вообще, решение данной задачи подходит под два паттерна: MapReduce и Fork/Join - но то ли я гуглить не умею, то ли доступных решений для С++ не нашел. Да, надо сказать что MapReduce фреймворки в основном рассчитаны на кластер машин, а не на одну.
0
07.08.2010, 21:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2010, 21:12
Помогаю со студенческими работами здесь

Выведите последовательность слов, удалив из нее повторные вхождения слов
Пусть дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных...

Напечатать последовательность слов, не удалив из нее повторные вхождения слов
дана последовательность содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 прорисных...

Напечатать эту же последовательность слов, предварительно удалив из нее повторные вхождения слов
Программа. Дана последовательность, содержащая от 1 до 20 слов, в каждом из которых от 1 до 5...

Статистика слов
Дана строка, состоящая из заглавных английских букв и пробелов. Непрерывная последовательность букв...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru