0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
|
|
1 | |
Статистика вхождения слов в массиве файлов (~50Gb)06.08.2010, 20:33. Показов 749. Ответов 4
Метки нет (Все метки)
Есть задача: собрать статистику вхождения слов в массиве файлов (~50Gb) с использованием библиотеки X (синтаксический анализатор). Библиотека X написана не идеально, но доступных её аналогов нет. Библиотека X может выкидывать segmentation fault в зависимости от обрабатываемого файла, т.е. её код не стабилен в 100% случаев.
Напрашивается решение: написать менеджер процессов, запускающий обработку каждого файла в отдельном процессе для изоляции от segmentation fault и складывающий результат в shared memory. Главный процесс, он же менеджер рабочих процессов, по окончании обработки файлов сохраняет результаты на диск. Вопрос: Есть ли какие-то готовые решения для данной задачи. Может быть библиотека или фреймворк?
0
|
06.08.2010, 20:33 | |
Ответы с готовыми решениями:
4
Вывести заданную последовательность слов, но удалив из неё повторные вхождения слов Распечатать эту же последовательность слов, удалив из нее повторные вхождения слов Вывести заданную последовательность слов, удалив из неё повторные вхождения слов Напечатать эту же последовательность слов, но удалив из нее повторные вхождения слов |
nikkka
|
07.08.2010, 12:35
#2
|
Не по теме: нииииичего не понял...
0
|
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
|
|
07.08.2010, 16:37 [ТС] | 3 |
Попробую иначе:
Существуют ли какие-то готовые решения на с++ (фреймворки, библиотеки) для параллельного запуска определяемой пользователем функции в виде изолированных процессов? Т.е. программист определяет список задач, назначает функцию для обработки каждой задачи и далее это дело передает фреймворку, который каждую задачу обрабатывает с помощью заданной функции в изолированном процессе (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 |
А альтернатив нет. Синтаксический парсер русского языка на дороге не валяется. А разбираться в его кишках никакого желания и сил нет.
И библиотека как раз таки вылетает на segfault в зависимости от набора входных данных. Благо что бывает это довольно редко. На моем самопальном решении задачи из сабжа количество segfault ~2%, что лично меня устраивает. Но т.к. segfalut возникает внезапно, то хочется как-то застраховаться - чтобы приложение не валилось все целиком из-за одного файла а продолжало обработку. Оставил комп на несколько суток работать - и ушел, не думаю о том что там где-то сегфолт вылетит на одном файле. Для сбора статистики этого подхода более чем достаточно Добавлено через 7 минут Вообще, решение данной задачи подходит под два паттерна: MapReduce и Fork/Join - но то ли я гуглить не умею, то ли доступных решений для С++ не нашел. Да, надо сказать что MapReduce фреймворки в основном рассчитаны на кластер машин, а не на одну.
0
|
07.08.2010, 21:12 | |
07.08.2010, 21:12 | |
Помогаю со студенческими работами здесь
5
Выведите последовательность слов, удалив из нее повторные вхождения слов Напечатать последовательность слов, не удалив из нее повторные вхождения слов Напечатать эту же последовательность слов, предварительно удалив из нее повторные вхождения слов Статистика слов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |