Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pixx
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
#1

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

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

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

Вопрос: Есть ли какие-то готовые решения для данной задачи. Может быть библиотека или фреймворк?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2010, 20:33     Статистика вхождения слов в массиве файлов (~50Gb)
Посмотрите здесь:

Удалить повторные вхождения слов в предложение - C++
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается...

Подсчитать частоту вхождения слов в текстовом файле - C++
У меня есть код (задание ниже). Код не работает, выдает какую-то ощибку. Помогите испаравить кто-нибудь... Задание: Создать программу,...

Программа для подсчета частоты вхождения слов - C++
Доброго времени суток. Недавно помогли "сворганить" програмку для подсчета частоты вхождения слов из текстового файла: #include...

Программа для подсчета частоты вхождения слов - C++
Программа считает частоту вхождений слов, но есть небольшой нюанс. Слова типа ("как-то") выводит как два отдельных слова, как и то, Тире не...

Обработка текста, удаление повторного вхождения слов - C++
Помогите написать задачу на С: Задана фраза - последовательность, содержащая от 1 до 25 слов, в каждом из которых от 1 до 10 строчных...

Удалить из последовательности все повторные вхождения слов - C++
При запуске программы появляется ошибка Debug Assertion Failed. Помогите пожалуйста исправить программу, чтобы программа запускалась и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nikkka
07.08.2010, 12:35
  #2

Не по теме:

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

pixx
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
07.08.2010, 16:37  [ТС]     Статистика вхождения слов в массиве файлов (~50Gb) #3
Цитата Сообщение от nikkka Посмотреть сообщение

Не по теме:

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

Попробую иначе:
Существуют ли какие-то готовые решения на с++ (фреймворки, библиотеки) для параллельного запуска определяемой пользователем функции в виде изолированных процессов?
Т.е. программист определяет список задач, назначает функцию для обработки каждой задачи и далее это дело передает фреймворку, который каждую задачу обрабатывает с помощью заданной функции в изолированном процессе (proccess, не thread).
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
07.08.2010, 20:59     Статистика вхождения слов в массиве файлов (~50Gb) #4
То есть ты думаешь если библиотека не упала в segfault, то она и считает правильно ?
Я бы не полагался на кривой код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2010, 21:12     Статистика вхождения слов в массиве файлов (~50Gb)
Еще ссылки по теме:

В массиве слов найти пару слов, из которых одно является обращением другого - C++
Дали задачку, вроде простая, а мыслей нет(( вопрос как организовать поиск слов)) ну собственно задание: В массиве слов найти пару...

Найти номер первого вхождения заданного числа в массиве - C++
1. Вычислить среднее арифметическое квадратов положительных элементов. 2. Определить количество элементов, имеющих четные порядковые...

Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение - C++
Здравствуйте.Помогите пожалуйста в решении вот такой задачи: Дан файл, содержащий текст на русском языке. В предложениях некоторые из...

Определить в символьном массиве номер вхождения символа вводимого пользователем с клавиатуры - C++
Определить в символьном массиве номер вхождения символа вводимого пользователем с клавиатуры


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

Или воспользуйтесь поиском по форуму:
pixx
0 / 0 / 0
Регистрация: 05.05.2010
Сообщений: 6
07.08.2010, 21:12  [ТС]     Статистика вхождения слов в массиве файлов (~50Gb) #5
Цитата Сообщение от odip Посмотреть сообщение
То есть ты думаешь если библиотека не упала в segfault, то она и считает правильно ?
Я бы не полагался на кривой код.
А альтернатив нет. Синтаксический парсер русского языка на дороге не валяется. А разбираться в его кишках никакого желания и сил нет.

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

Добавлено через 7 минут
Вообще, решение данной задачи подходит под два паттерна: MapReduce и Fork/Join - но то ли я гуглить не умею, то ли доступных решений для С++ не нашел. Да, надо сказать что MapReduce фреймворки в основном рассчитаны на кластер машин, а не на одну.
Yandex
Объявления
07.08.2010, 21:12     Статистика вхождения слов в массиве файлов (~50Gb)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru